[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74725":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},74725,"yj_nearbyglasses","yjeanrenaud\u002Fyj_nearbyglasses","yjeanrenaud","attempting to detect smart glasses nearby and warn you","",null,"Kotlin",1850,87,10,7,0,33,104,11,18.83,"GNU Affero General Public License v3.0",false,"main",[25,26,27,28,29,30,31,32,33],"android","android-app","meta","privacy","privacy-protection","ray-ban-meta-smart-glasses","self-defense","smartglasses","smartphone","2026-06-12 02:03:27","# yj_nearbyglasses\nattempting to detect smart glasses nearby and warn you.\n# ⚠ WARNING! ⚠ \n*nearby-glasses-alert.pages.dev* is NOT RELATED TO MY PROJECT. They seem to hijack the name and try to make a quick profit from it. I do not endorse this.\n---\n\n\u003Cimg width=\"135\" height=\"300\" align =\"right\" alt=\"Screenshot Nearby Glasses classic\" src=\"img\u002Fold\u002FScreenshot%20Nearby%20Glasses%20(2).png\" \u002F>\n\u003Cimg width=\"135\" height=\"300\" align =\"right\" alt=\"Screenshot Nearby Glasses canary mode\" src=\"img\u002FScreenshot%20Nearby%20Glasses%20(2).png\" \u002F>\n\n# ⚠ WARNING! ⚠ \n**HARASSING someone because you think they are wearing a covert surveillance device can be a criminal offence. It may even be a more serious offence than using such a device. Please seek legal advice regarding your local laws on this matter.**\n---\n## ⚠ DO NOT HARASS ANYONE AT ALL ⚠\n---\n\n# Nearby Glasses \nThe app, called *Nearby Glasses*, has one sole purpose: Look for smart glasses nearby and warn you.\n\n\u003Ca href=\"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=ch.pocketpc.nearbyglasses\" target=\"_blank\">\u003Cimg width=\"239\" height=\"71\" alt=\"Get It On Google Play\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0feb46d1-969e-4f83-8fc7-c18d1bbed8ad\" \u002F>\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fapt.izzysoft.de\u002Fpackages\u002Fch.pocketpc.nearbyglasses\" taget=\"_blank\">\u003Cimg height=\"71\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F9a711c51-6bce-43b3-af4f-4f198a94970f\" alt=\"Get it at IzzyOnDroid\" \u002F>\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fapps.obtainium.imranr.dev\u002Fredirect.html?r=obtainium:\u002F\u002Fadd\u002Fhttps:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002F\">\u003Cimg width=\"239\" height=\"71\" alt=\"Get it on Obtainium\" src=\".\u002Fimg\u002FDownload_with_Obtainium.png\"\u002F>\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fnearby-glasses-original\u002Fid6761056896\">\u003Cimg width=\"213\" height=\"71\" alt=\"Download on the App Store\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc82c0c5b-c775-4754-8946-b76722c9e7cf\" \u002F>\u003C\u002Fa>\n\n\n# Table of contents\n * [Nearby Glasses](#Nearby-Glasses)\n  * [Why?](#why)\n  * [How?](#how)\n  * [Features](#features)\n    * [What's RSSI?](#whats-rssi)\n  * [iOS and Android](#ios-and-android)\n  * [Usage](#usage)\n  * [ToDos](#todos)\n  * [Tech-Solutionism?](#tech-solutionism)\n  * [Build from Source](#build-from-source)\n  * [Shoutouts](#shoutouts)\n  * [License and Credits](#license-and-credits)\n\nThis app notifies you when smart glasses are nearby. It uses company identificators in the Bluetooth data sent out by these. Therefore, there likely are false positives (e.g. from VR headsets). Hence, please proceed with caution when approaching a person nearby wearing glasses. They might just be regular glasses, despite this app’s warning.\n        \nThe app’s author [Yves Jeanrenaud](https:\u002F\u002Fyves.app) takes no liability whatsoever for this app nor it’s functionality. Use at your own risk. By technical design, detecting Bluetooth LE devices might sometimes just not work as expected. I am no graduated developer. This is all written in my free time and with knowledge I taught myself.\u003Cbr\u002F>\n**False positives are likely.** This means, the app *Nearby Glasses* may notify you of smart glasses nearby when there might be in fact a VR headset of the same manufacturer or another product of that company’s breed. It may also miss smart glasses nearby. Again: I am no pro developer.\u003Cbr\u002F>\nHowever, this app is **free and open source**, you may review the code, change it and re-use it (under the [license](LICENSE)).\u003Cbr\u002F>\nThe app *Nearby Glasses* does not store any details about you or collects any information about you or your phone. There are no telemetry, no ads, and no other nuisance. If you install the app via Play Store, Google may know something about you and collect some stats. But the app itself does not. \u003Cbr\u002F>\nIf you choose to store (export) the logfile, that is completely up to you and your liability where this data go to. The logs are recorded only locally and not automatically shared with anyone. They do contain little sensitive data; in fact, only the manufacturer ID codes of BLE devices encountered.\u003Cbr\u002F>\n\u003Cbr\u002F>\n**Use with extreme caution!** As stated before: There is no guarantee that detected smart glasses are really nearby. It might be another device looking technically (on the BLE adv level) similar to smart glasses.\u003Cbr\u002F>\nPlease do not act rashly. **Think before you act upon any messages** (not only from this app).\u003Cbr\u002F>\n\u003Cbr\u002F>\n## Why?\n- Because I consider smart glasses an intolerable intrusion, consent neglecting, horrible piece of tech that is already used for making various and tons of equally truely disgusting 'content'. [1](https:\u002F\u002Fwww.404media.co\u002Fborder-patrol-agent-recorded-raid-with-metas-ray-ban-smart-glasses\u002F), [2](https:\u002F\u002Fwww.404media.co\u002Fmetas-ray-ban-glasses-users-film-and-harass-massage-parlor-workers\u002F)\n- Some smart glasses feature small LED signifying a recording is going on. But this is easily disabled, whilst manufacturers claim to prevent that and take no responsibility at all (tech tends to do that for decades now). [3](https:\u002F\u002Fwww.404media.co\u002Fhow-to-disable-meta-rayban-led-light\u002F)\n- Smart glasses have been used for instant facial recognition before [4](https:\u002F\u002Fwww.404media.co\u002Fsomeone-put-facial-recognition-tech-onto-metas-smart-glasses-to-instantly-dox-strangers\u002F) and reportedly will be out of the box [5](https:\u002F\u002Fwww.nytimes.com\u002F2026\u002F02\u002F13\u002Ftechnology\u002Fmeta-facial-recognition-smart-glasses.html). This puts a lot of people in danger.\n- They data is used to train AI, which means, people will screen the recordings and see, liekly, most intimate, insights [6](https:\u002F\u002Fwww.svd.se\u002Fa\u002FK8nrV4\u002Fmetas-ai-smart-glasses-and-data-privacy-concerns-workers-say-we-see-everything)\n- I hope this app is useful for someone.\n  \n## How?\n- It's a simple rather heuristic approach. Because BLE uses randomised MAC and the OSSID are not stable, nor the UUID of the service announcements, you can't just scan for the bluetooth beacons. And, to make thinks even more dire, some like Meta, for instance, use proprietary Bluetooth services and UUIDs are not persistent, ~~we can only rely on the communicated device names for now~~.\n- The currently **most viable approach** comes from the [Bluetooth SIG assigned numbers repo](https:\u002F\u002Fwww.bluetooth.com\u002Fspecifications\u002Fassigned-numbers\u002F). Following this, the manufacturer company's name shows up as number codes in the packet advertising header (ADV) of BLE beacons.\n - this is what BLE advertising frames look like:\n```\nFrame 1: Advertising (ADV_IND)\nTime:  0.591232 s\nAddress: C4:7C:8D:1E:2B:3F (Random Static)\nRSSI: -58 dBm\n\nFlags:\n  02 01 06\n    Flags: LE General Discoverable Mode, BR\u002FEDR Not Supported\n\nManufacturer Specific Data:\n  Length: 0x1A\n  Type:   Manufacturer Specific Data (0xFF)\n  Company ID: 0x058E (Meta Platforms Technologies, LLC)\n  Data: 4D 45 54 41 5F 52 42 5F 47 4C 41 53 53\n\nService UUIDs:\n  Complete List of 16-bit Service UUIDs\n  0xFEAA\n```\n- According to the [Bluetooth SIG assigned numbers repo](www.bluetooth.com\u002Fspecifications\u002Fassigned-numbers\u002F), we may use these company IDs:\n  - `0x01AB` for `Meta Platforms, Inc. (formerly Facebook)`\n  - `0x058E` for `Meta Platforms Technologies, LLC`\n  - `0x0D53` for `Luxottica Group S.p.A` (who manufactures the Meta Ray-Bans)\n  - `0x03C2` for `Snapchat, Inc.` (that makes SNAP Spectacles)\n    \n  They are **immutable and mandatory**. Of course, Meta and other manufacturers also have other products that come with Bluetooth and therefore their ID, e.g. VR Headsets. Therefore, using these company ID codes for the app's scanning process is prone to false positives. But if you can't see someone wearing an Occulus Rift around you and there are no buildings where they could hide, chances are good that it's smart glasses instead.\n- During pairing, the smart glasses usually emit their product name, so we can scan for that, too. But it's rare we will see that in the field. People with the intention to use smart glasses in bars, pubs, on the street, and elsewhere usually prepare for that beforehand.\n- When the app recognised a Bluetooth Low Energy (BLE) device with a sufficient signal strength (see RSI below), it will push an alert message. This shall help you to act accordingly.\n\n## Features\n- The app *Nearby Glasses* shows a notification when smart glasses are nearby (that means, a BLE device of one of those company IDs mentioned above)\n- **Nearby** means, the RSSI (signal strength) is less than or equal to a given value: -75 dBm by default. This default value corresponds to a medium distance and an ok-ish signal.\n  ### What's RSSI?\n- Let me explain a bit that RSSI-Value:\u003Cbr\u002F>\nRSSI is short for Received Signal Strength Indication. The value is an indication for the reception field strength of wireless communication applications. [Wikipedia has a quite good article](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FReceived_signal_strength_indicator) about it.\nIn short, RSSI depends mainly on:\u003Cbr\u002F>\n  - Device transmit power\n  - Antenna design\n  - Walls and obstacles\n  - Human bodies absorbing signal\n  - Reflection and interference\n  - Device orientation\u003Cbr\u002F>\nBut typical BLE (Bluetooth Low Energy) scenarios, RSSI rough distance (open space) is: \u003Cbr\u002F>\n  - -60 dBm ~ 1 – 3 m\u003Cbr\u002F>\n  - -70 dBm ~ 3 – 10 m\u003Cbr\u002F>\n  - -80 dBm ~ 10 – 20 m\u003Cbr\u002F>\n  - -90 dBm ~ 20 – 40 m\u003Cbr\u002F>\n  - -100 dBm ~ 30 – 100+ m or near signal loss\u003Cbr\u002F>\nIndoors, distances are often much shorter.\u003Cbr\u002F>\nRSSI drops roughly according to\u003Cbr\u002F>\n    `RSSI ≈ -10 * n * log10(distance) + constant`\u003Cbr\u002F>\n- Therefore, the default RSSI threshold of -75 dBm corresponds to about 10 to 15 meters in open space and 3 to 10 meters indoors or in crowded spaces. You got a good chance to spot that smart glasses wearing person like that.\n- *Nearby Glasses* shows an optional debug log that is exportable (as txt file) and features a copy&paste function. Those are for advanced users (nerds) and for further debugging.\n- Under *Settings*, you may specify the log length, the debugging (display all scan items or only ADV frames).\n- You may also enter some **company IDs** as string of hex values, e.g. `0x01AB,0x058E,0x0D53`. This overrides the built-in detection, so your notification shows up for the new value(s).\n- For better persistence, it uses Android's *Foreground Service*. You may disable this under *Settings* if you don't need it.\n- The *Notification Cooldown* under *Settings* specifies how much time must pass between two warnings. Default is 10000 ms, which is 10 s. This also applies for the canary, e.g. 10s means, it will stay alert for 10s before it calms itsself again.\n- It is now a bit more localised: \u003Cimg src=\"img\u002Fcanary_hide.svg\" align=\"right\" alt=\"Drawing of a canary that hides underneath a wing\" height=\"100\" width=\"100\">\n   - English\n   - German\n   - Swiss German\n   - French\n   - Spanish\n   - Chinese (partially)\n   - more to come, eventually\n- Now the app icon's background is not transparent anymore\n- *Nearby Glasses* now supports dark mode (via system settings)\n- The edge-to-edge layout issue should be fixed from [v1.0.4](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Freleases) onwards.\n- Newly licensed under AGPL 3.0\n- I decided to waive the CLA. After some discussions with people who knew more than me about collaborative projects, I gained the insight that this was an unnecessary step.\n## iOS and Android\n- Finally, after three weeks, the iOS port is available. It should work on most iPhones and iPads; even older ones (back to iOS 16). [Source code and project files are provided](\u002FiOS\u002F), too. The code is ugly and unorthodox. Many approaches are quick and dirty (e.g. I re-use the json files from the android localisation), but it is working so far. *Nearby Glasses* is availale via the [Apple App Store](https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fnearby-glasses-original\u002Fid6761056896). (It's called original to make it distinguishable from those copycats). A .ipa is available for sideloading under [releases](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Freleases).\n  The iOS App is not working in the background, because I found no possibility to use something similar to ForegroundServices in order to permanently scan for BTLE ADV due to iOS restrictions. Hence, there's only a Canary Mode available in *Nearby Glasses* under iOS.\n- Because this repository holds both Android and iOS App code, I re-organised the folders. Hence, there is [\u002FiOS](\u002FiOS\u002F) and [\u002FAndroid](\u002FAndroid\u002F).\n\n## Usage\n\n- See [Releases](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Freleases) for APK to download or use Google Play Store. F-Droid and\u002For Accrescent may follow.\n\u003Cimg width=\"135\" height=\"300\" align =\"right\" alt=\"Screenshot Nearby Glasses: Settings\" src=\"img\u002FScreenshot%20Nearby%20Glasses%20(4).png\" \u002F>\n\n\u003Ca href=\"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=ch.pocketpc.nearbyglasses\" target=\"_blank\">\u003Cimg width=\"239\" height=\"71\" alt=\"Get It On Google Play\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0feb46d1-969e-4f83-8fc7-c18d1bbed8ad\" \u002F>\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fnearby-glasses-original\u002Fid6761056896\">\u003Cimg width=\"213\" height=\"71\" alt=\"Download on the App Store\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc82c0c5b-c775-4754-8946-b76722c9e7cf\" \u002F>\u003C\u002Fa>\n1. Install the app (from [Releases](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Freleases) or from [Google Play](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=ch.pocketpc.nearbyglasses), for now) or from [Apple App Store](https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fnearby-glasses-original\u002Fid6761056896), and open it\n2. Hit the *Start Scanning* button\n3. Grant permissions to activate Bluetooth (if not already enabled) and to access devices nearby. Some versions of Android also need you to grant permissions to access your location (before Version 13, mostly). *Nearby Glasses* does nothing with your location info. If you don't believe me, please look at the [code](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Ftree\u002Fmain\u002Fapp)\n4. if you don't see the scan starting, you might need to enable *Foreground Service* on your particular phone in the *Settings* menu (see below)\n5. You're all set! When smart glasses are detected nearby, a notification will appear. It does so until you hit *Stop Scanning* or terminate the app for good\n7. In the menu (top right, the cogwheel), you may make some *Settings*:\n   1. *Enable Foreground Service*: By this, you prevent Android from pausing the app thus preventing it from alerting you. I recommend leaving this enabled\n   2. *RSSI threshold*: This negative number specifies how far away a device might be to be a reason for an alert by *Nearby Glasses*. Technically, it referes to how strong the signal is received. Closer to zero means better signal, hence fewer distance between your phone and the smart glasses. See [RSSI above for explanations and guidance](#how). I recommend leaving it on -75\n   3. *Enable Notifications*: You would not want to disable that \n   4. Canary Mode. This is the new default. With this, you will not get system notifications altering you of smart glasses nearby, but instead you will see a canary that indicates no smart glasses around. iOS app only has a canary mode due to technical constrains. \u003Cimg src=\"img\u002Fcanary.svg\" alt=\"Drawing of a canary\" width=\"100\" height=\"100\" alignt=\"left\"> \n   5. *Notification\u002FCanary Cooldown*: Here, you specify, how many notifications about found smart glasses nearby you want to get or how long the canary should hide. I chose 10 seconds (10000 ms) as default value. Like this, you won't miss the notification while at the same time won't be bothered by it too much or drain your battery too fast\n   6. *Enable Log Display*: Disabling this might spare you some battery. This is disabled in canary mode.\n   7. *Debug*: Is needed to see more than just the matching BLE frames in the log display frame. It's useful to see if things are working. This is disabled in canary mode.\n   8. *Max log lines*: How long the log may get. 200 seems to be a good balance between battery life and usability of the log (for nerds like me). This is disabled in canary mode.\n   9. *BLE ADV only*: This excludes other Bluetooth LE frames from the log for better readability. This is disabled in canary mode.\n   10. *Override Company IDs*: If you want, you can let *Nearby Glasses* alert you of other devices than specified above. Useful for debugging, at least for me. Leave it empty if you don't need it or don't know what to do with it\n   11. Every setting is saved and effective immediately. To go back, use your back button or gesture\n8. The export function enables you to share a text-file of the app's log. For nerds like me\n9. You may also copy&paste the log by tapping on the log display frame\n\n## ToDos\n- **It's now working in the wild!** I managed to get some people testing it with verified smart glasses around them. Special thanks to Lena!\n- See [Releases](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Freleases) for APK to download. \n- I pushed [*Nearby Glasses* to Google Play](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=ch.pocketpc.nearbyglasses), too. However, I will always publish [releases here on GitHub](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Freleases) and [elsewhere](https:\u002F\u002Fyves.app\u002Fnearbyglasses\u002Flatest.apk), for those that avoid the Google Play.\n\n---\n\n- Add an option to set false positives to an ignore list. Maybe in the notification?\n- I am no BT or Android expert at all. For what I've learned, one could also dig deeper into the communication of the smart glasses by sniffing the BLE traffic. By doing so, we would likely not need to rely on the device behaving according to the BT specifications but could also use heuristics on the encrypted traffic transmissions without much false positives. But I haven't looked into BT traffic packets for more than ten years. I'm glad I remembered ADV frames... So if anybody could help on this, that'd be greatly appreciated!\n---\n- Add **more manufacturers IDs** of smart glasses. Right now, it's Meta, Oakley and Snap. A list of smart glasses with cameras available would help, too. I opened an [ISSUE for this](https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\u002Fissues\u002F56), so people might **assist** by sending in their logs (which are perfectly safe, imho) when encoutering other recording smart glasses\n- as of March 24, 2026, the iOS version is available, too.\n- There **layout issue** with **Google Pixel devices** seems to be fixed as of Version 1.0.3. If you still can't reach the menu as it's mixed with the status bar somehow. Will look into that asap. Meanwhile, try to put your screen to landscape mode and rotate *clockwise (to the right)*. \n\n## Tech-Solutionism?\nI know, this might be an odd place to do so, but just hear me out on this. I am aware this is a technical solution to a social problem, which is itsself amplified by tech.\nI do not want to promote techsolutionism nor do I want people to feel falsely secure. It's still an imperfect approach and propably always will be. It's not all good only because this app exists now. We need better solutions to curb on surveilance tech and privacy intrution.\n\n## Build from Source\nAs *Nearby Glasses* is open source, you may also build the app yourself from the source code. This makes sure there are no other libraries included in the APK and you get what you want.\n\nPlease Note This app builds upon:\n- Gradle Wrapper: 8.13\n- Android Gradle Plugin: 8.13.2\n- Kotlin: 1.9.22\n- compileSdk: 35\n- targetSdk: 35\n- minSdk: 26\n- No product flavors\n- Repositories: google() and mavenCentral() only\n- No Google Services or Firebase plugins\n\n### Requirements\n\n- **JDK 17** (required — project targets Java 17)\n- **Android SDK Platform 35** installed  \n  - compileSdk = 35  \n  - targetSdk = 35  \n- Git\n### Building APK step-by-step\n```bash\n#Verify Java version:\n\n $java -version\n#It must report Java 17.\n\n#Get the source code\n $git clone https:\u002F\u002Fgithub.com\u002Fyjeanrenaud\u002Fyj_nearbyglasses\n $cd yj_nearbyglasses\n\n#Build Debug\n $.\u002Fgradlew clean assembleDebug\n\n#Build Release (with your own signature cert)\n $.\u002Fgradlew clean assembleRelease\n\n#Build unsigned Release for IzzyOnDroid \u002F F-Droid\n $.\u002Fgradlew clean izziFdroid \n\n#Run and Test\n $.\u002Fgradlew test lint\n```\n\n## Shoutouts\n- [@vfrmedia@social.tchncs.de](https:\u002F\u002Fsocial.tchncs.de\u002F@vfrmedia) for helping me with the warnings\n- [@mewsleah@meow.social](https:\u002F\u002Fmeow.social\u002F@mewsleah) for pointing out the idea of a canary mode\n- [@pojntfx](https:\u002F\u002Fgithub.com\u002Fpojntfx) for pointing out my misunderstandings with licensing\n- [Sarah-Jane B.](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsarah-janeb\u002F) for UX design tipps\n- Lena Radau for the translation to Spanish\n- Marcel L. for feedback and testing the iOS app\n- Lena Hansen for field tests\n- Everyone else who already provided feedback to the app!\n\n## License and Credits\n**App Icon**: The icon is based on [Eyeglass icons created by Freepik - Flaticon](https:\u002F\u002Fwww.flaticon.com\u002Ffree-icons\u002Feyeglass)\u003Cbr\u002F>\n**License**:  This app *Nearby Glasses* is licensed under the [AGPL-3.0 license](LICENSE).\u003Cbr\u002F>\n**Canary**: The canary drawings are made by me and licensed under [CC BY-SA 4.0](https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-sa\u002F4.0\u002F). I provided them as raw svg files (done in [InkScape](https:\u002F\u002Finkscape.org\u002F)) and converted to xml, obviously, for the app's resources\u003Cbr\u002F>\n","Nearby Glasses 是一款旨在检测附近智能眼镜并发出警告的应用。其核心功能是通过分析蓝牙信号中的公司标识符来识别智能眼镜，从而提醒用户可能存在的隐私风险。该应用使用 Kotlin 语言开发，具有简洁的界面和易于操作的特点。适用于关注个人隐私保护、尤其是在公共场合担心被智能设备偷拍的用户。需要注意的是，由于技术限制，该应用可能会出现误报情况，因此在实际使用时应谨慎对待警报信息。",2,"2026-06-11 03:50:30","high_star"]