
近くのスマートグラスを検出しようと試み、警告します。
# yj_nearbyglasses
近くのスマートグラスを検出して警告しようとする試みです。
# ⚠ 警告! ⚠
*nearby-glasses-alert.pages.dev* は私のプロジェクトとは一切関係ありません。Play Store や App Store には、*Nearby Glasses* と見た目が似ている、あるいは同じような名前のアプリが多数存在します。それらは名前を乗っ取り、そこから手っ取り早く利益を得ようとしているようです。それらは AGPL ライセンスに従っておらず、何も提供していません。私はこれらを支持しません。
---
<img width="135" height="300" align ="right" alt="Screenshot Nearby Glasses classic" src="https://assets.kitploit.com/production/public/readmes/12083/e76b27744afcd0893efe1992c440e28c6606e742fa390f1b2c9a79a34e5600d1.png" />
<img width="135" height="300" align ="right" alt="Screenshot Nearby Glasses canary mode" src="https://assets.kitploit.com/production/public/readmes/12083/29c66ac6f3e7327f73700e7241c0ca93860a8f5cc3efdfdc619b8ee91873473a.png" />
# ⚠ 警告! ⚠
**相手が隠し撮影・監視用のデバイスを身につけていると思い込んで嫌がらせをすることは、刑事犯罪となり得ます。それは、そのようなデバイスを使用することよりも重大な犯罪となる場合さえあります。この件については、お住まいの地域の法律について法的助言を求めてください。**
---
## ⚠ いかなる相手に対しても嫌がらせをしてはいけません ⚠
---
# Nearby Glasses
*Nearby Glasses* というこのアプリには、ただ一つの目的があります。それは、近くのスマートグラスを探して警告することです。
<a href="https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses" target="_blank"><img width="239" height="71" alt="Get It On Google Play" src="https://assets.kitploit.com/production/public/readmes/12083/a7dbeba4623dd255798dd1159e543cdbeeb9e43faa6db7f859b0f9ed3699932c.png" /></a> <a href="https://apt.izzysoft.de/packages/ch.pocketpc.nearbyglasses" taget="_blank"><img height="71" src="https://assets.kitploit.com/production/public/readmes/12083/75659b864e0f38bedce979c2097721b9beae838a06434eaacb0e93815468735a.png" alt="Get it at IzzyOnDroid" /></a> <a href="https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://github.com/yjeanrenaud/yj_nearbyglasses/"><img width="239" height="71" alt="Get it on Obtainium" src="https://assets.kitploit.com/production/public/readmes/12083/33e5685bdfff51e02830f2a18b5df5df986e73c2c8ae0f7cf031ebc791e5f771.png"/></a> <a href="https://f-droid.org/en/packages/ch.pocketpc.nearbyglasses/"><img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/main/img/get-it-on-fdroid.png?raw=true" alt="Get it on F-Droid" width="213" /></a> <a href="https://apps.apple.com/us/app/nearby-glasses-original/id6761056896"><img width="213" height="71" alt="Download on the App Store" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
# 目次
* [Nearby Glasses](#Nearby-Glasses)
* [なぜ?](#why)
* [どうやって?](#how)
* [機能](#features)
* [RSSI とは?](#whats-rssi)
* [iOS と Android](#ios-and-android)
* [使い方](#usage)
* [ToDo](#todos)
* [技術的解決主義?](#tech-solutionism)
* [ソースからビルド](#build-from-source)
* [謝辞](#shoutouts)
* [ライセンスとクレジット](#license-and-credits)
このアプリは、近くにスマートグラスがあると通知します。スマートグラスが発信する Bluetooth データに含まれる企業識別子を利用しています。そのため、誤検知(例えば VR ヘッドセットによるもの)が発生する可能性があります。したがって、近くでメガネをかけている人に近づく際は注意してください。このアプリが警告しても、それはただの普通のメガネかもしれません。
本アプリの作者 [Yves Jeanrenaud](https://yves.app) は、本アプリおよびその機能について一切の責任を負いません。自己責任でご使用ください。技術的な設計上、Bluetooth LE デバイスの検出が期待どおりに動作しない場合があります。私は開発者としての学位を持つ者ではありません。これはすべて私の自由時間に、独学で身につけた知識をもって書かれたものです。<br/>
**誤検知が発生する可能性が高いです。** つまり、アプリ *Nearby Glasses* は、実際には同じメーカーの VR ヘッドセットやその企業系列の別製品が近くにあるだけなのに、スマートグラスが近くにあると通知する場合があります。また、近くにあるスマートグラスを見逃すこともあります。繰り返しますが、私はプロの開発者ではありません。<br/>
ただし、本アプリは**無料かつオープンソース**であり、コードをレビューし、変更し、再利用することができます([ライセンス](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/LICENSE)の下で)。<br/>
アプリ *Nearby Glasses* は、あなたに関する詳細を保存したり、あなたやあなたの携帯電話に関する情報を収集したりすることはありません。テレメトリ、広告、その他の迷惑なものは一切ありません。Play Store 経由でアプリをインストールした場合、Google はあなたに関する何らかの情報を知り、いくつかの統計を収集する可能性があります。しかし、アプリ自体は何も行いません。<br/>
ログファイルを保存(エクスポート)することを選択した場合、それは完全にあなたの判断と、そのデータがどこへ行くかについてのあなたの責任です。ログはローカルにのみ記録され、誰とも自動的に共有されることはありません。ログには機密性の低いデータしか含まれていません。実際には、遭遇した BLE デバイスのメーカー ID コードのみです。<br/>
<br/>
**細心の注意を払って使用してください!** 前述のとおり、検出されたスマートグラスが本当に近くにあるという保証はありません。技術的には(BLE アドバタイズレベルで)スマートグラスに似ている別のデバイスである可能性があります。<br/>
軽率な行動は控えてください。**あらゆるメッセージに基づいて行動する前に考えてください**(本アプリからのものに限らず)。<br/>
<br/>
## なぜ?
- スマートグラスは耐え難い侵入であり、同意を無視する、恐ろしい技術製品であり、すでにさまざまな、そして大量の、同様に真に忌まわしい「コンテンツ」の作成に使われていると私は考えているからです。[1](https://www.404media.co/border-patrol-agent-recorded-raid-with-metas-ray-ban-smart-glasses/)、[2](https://www.404media.co/metas-ray-ban-glasses-users-film-and-harass-massage-parlor-workers/)
- 一部のスマートグラスには、録画中であることを示す小さな LED が搭載されています。しかしこれは簡単に無効化でき、メーカーはそれを防ぐと主張しながらも一切の責任を負いません(技術とは何十年もそういう傾向があります)。[3](https://www.404media.co/how-to-disable-meta-rayban-led-light/)
- スマートグラスは以前から即時顔認識に使用されており [4](https://www.404media.co/someone-put-facial-recognition-tech-onto-metas-smart-glasses-to-instantly-dox-strangers/)、さらに箱から出した状態でそれが可能になると報じられています [5](https://www.nytimes.com/2026/02/13/technology/meta-facial-recognition-smart-glasses.html)。これは多くの人々を危険にさらします。
- そのデータは AI のトレーニングに使用されます。つまり、人々が録画を精査し、おそらく最もプライベートな内情を見ることになるということです [6](https://www.svd.se/a/K8nrV4/metas-ai-smart-glasses-and-data-privacy-concerns-workers-say-we-see-everything)
- このアプリが誰かの役に立つことを願っています。
## どのように?
- これはかなりヒューリスティックなシンプルなアプローチです。BLE は MAC をランダム化し、OSSID も安定しておらず、サービスアナウンスの UUID も安定していないため、Bluetooth ビーコンをスキャンするだけでは済みません。さらに悪いことに、例えば Meta のようないくつかは独自の Bluetooth サービスを使用しており、UUID は永続的ではないため、~~今のところは通信されるデバイス名に頼るしかありません~~。
- 現在の**最も実行可能なアプローチ**は、[Bluetooth SIG の割り当て番号リポジトリ](https://www.bluetooth.com/specifications/assigned-numbers/)に由来します。これに従うと、メーカー企業名は BLE ビーコンのパケットアドバタイジングヘッダー(ADV)に数値コードとして現れます。
- BLE アドバタイジングフレームは次のようになります:
```
Frame 1: Advertising (ADV_IND)
Time: 0.591232 s
Address: C4:7C:8D:1E:2B:3F (Random Static)
RSSI: -58 dBm
Flags:
02 01 06
Flags: LE General Discoverable Mode, BR/EDR Not Supported
Manufacturer Specific Data:
Length: 0x1A
Type: Manufacturer Specific Data (0xFF)
Company ID: 0x058E (Meta Platforms Technologies, LLC)
Data: 4D 45 54 41 5F 52 42 5F 47 4C 41 53 53
Service UUIDs:
Complete List of 16-bit Service UUIDs
0xFEAA
```
- [Bluetooth SIG の割り当て番号リポジトリ](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/www.bluetooth.com/specifications/assigned-numbers)によると、以下の企業 ID を使用できます:
- `0x01AB` は `Meta Platforms, Inc. (formerly Facebook)` 用
- `0x058E` は `Meta Platforms Technologies, LLC` 用
- `0x0D53` は `Luxottica Group S.p.A`(Meta Ray-Bans の製造元)用
- `0x03C2` は `Snapchat, Inc.`(SNAP Spectacles の製造元)用
- `0x05D6` は `Zhuhai Jieli Technology Co`(Rogbird VisionPro および Rollme VistaView の製造元)用
これらは**不変かつ必須**です。もちろん、Meta やその他のメーカーには VR ヘッドセットなど、Bluetooth を搭載した他の製品もあり、そのため企業 ID も存在します。したがって、アプリのスキャン処理にこれらの企業 ID コードを使用すると、誤検知が発生しやすくなります。しかし、周囲に Occulus Rift を装着している人が見当たらず、隠れられる建物もない場合、それはスマートグラスである可能性が高いです。
- ペアリング中、スマートグラスは通常製品名を発信するため、それもスキャンできます。ただし、実際の現場でそれを目にすることは稀です。バー、パブ、路上などでスマートグラスを使用する意図のある人は、通常事前に対策を講じています。
- アプリが十分な信号強度(下記の RSI を参照)を持つ Bluetooth Low Energy(BLE)デバイスを認識すると、アラートメッセージをプッシュします。これは適切に対処するための助けとなるはずです。
- さらに、ブロードキャストされるデバイス名(例:`rayban`、`ray-ban`、`HeyCyan`)もスキャンします。`HeyCyan` は[様々なブランドのスマートグラス向けの有名な SDK](https://github.com/ebowwa/HeyCyanSmartGlassesSDK)です。これらの *HeyCyan* デバイスの中には、ALDI および Hofer(オーストリア)で販売されている Nilox Smart AI Glasses も含まれる場合があります。これを強化するため、これらのグラスのソフトウェア側に固定されたサービス識別子である `primary_UUID`(`7905FFF0-B5CE-4E99-A40F-4B1E122D00D0`)も検索します。これは将来変更される可能性がありますが、古いデバイスが使用できなくなるため、変更される可能性は低く、その場合はスキャンルーチンにさらに UUID を追加するだけです。
## 機能
- アプリ *Nearby Glasses* は、スマートグラスが近くにある場合(つまり、上記の企業 ID のいずれかに該当する BLE デバイス)に通知を表示します
- **近く**とは、RSSI(信号強度)が指定値以下であることを意味します:デフォルトでは -75 dBm。このデフォルト値は中程度の距離と許容できる信号に対応します。
### RSSIとは?
- RSSI値について少し説明します:<br/>
RSSIはReceived Signal Strength Indicationの略です。この値は無線通信アプリケーションの受信電界強度を示す指標です。[Wikipediaにかなり良い記事](https://en.wikipedia.org/wiki/Received_signal_strength_indicator)があります。
要するに、RSSIは主に以下に依存します:<br/>
- デバイスの送信電力
- アンテナ設計
- 壁や障害物
- 人体による信号の吸収
- 反射と干渉
- デバイスの向き<br/>
しかし、典型的なBLE(Bluetooth Low Energy)シナリオでは、RSSIによるおおよその距離(開けた空間)は次のとおりです:<br/>
- -60 dBm ~ 1 – 3 m<br/>
- -70 dBm ~ 3 – 10 m<br/>
- -80 dBm ~ 10 – 20 m<br/>
- -90 dBm ~ 20 – 40 m<br/>
- -100 dBm ~ 30 – 100+ m または信号損失に近い状態<br/>
屋内では、距離はしばしばはるかに短くなります。<br/>
RSSIはおおよそ次の式に従って低下します<br/>
`RSSI ≈ -10 * n * log10(distance) + constant`<br/>
- したがって、デフォルトのRSSIしきい値である-75 dBmは、開けた空間では約10〜15メートル、屋内や混雑した空間では3〜10メートルに相当します。そうすれば、スマートグラスをかけている人を見つけられる可能性は十分にあります。
- *Nearby Glasses*は、エクスポート可能な(txtファイルとして)オプションのデバッグログを表示し、コピー&ペースト機能を備えています。これらは上級ユーザー(マニア)およびさらなるデバッグのためのものです。
- *Settings*では、ログの長さ、デバッグ(すべてのスキャン項目を表示するか、ADVフレームのみを表示するか)を指定できます。
- また、**company ID**を16進値の文字列として入力することもできます。例:`0x01AB,0x058E,0x0D53`。これは組み込みの検出を上書きするため、新しい値に対して通知が表示されます。
- より良い永続性のために、Androidの*Foreground Service*を使用します。必要ない場合は*Settings*で無効にできます。
- *Settings*の*Notification Cooldown*は、2つの警告の間に経過しなければならない時間を指定します。デフォルトは10000 ms、つまり10秒です。これはカナリアにも適用されます。たとえば10秒の場合、再び落ち着くまで10秒間警告状態を維持します。
- より多くの言語にローカライズされました:<img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary_hide.svg" align="right" alt="翼の下に隠れるカナリアの絵" height="100" width="100">
- 英語
- ドイツ語
- スイスドイツ語
- フランス語
- スペイン語
- 中国語
- イタリア語
- ポルトガル語(ブラジル)
- ロシア語
- トルコ語
- 今後さらに追加予定([あなたの言語で貢献してこのプロジェクトを支援してください!](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/3))
- アプリアイコンの背景が透明でなくなりました
- UUIDもスキャンするようになりました
- *Nearby Glasses*はダークモード(システム設定経由)をサポートするようになりました
- エッジツーエッジのレイアウト問題は[v1.0.4](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)以降で修正されているはずです。
- AGPL 3.0の下で新たにライセンスされました
- CLAを放棄することにしました。共同プロジェクトについて私より詳しい人々とのいくつかの議論を経て、これは不要なステップだったという洞察を得ました。
- AGPL 3.0をより厳密に遵守するため、アイコンが少し変更されました。
## iOS と Android
- そしてついに、3週間を経て iOS 版が利用可能になりました。ほとんどの iPhone と iPad で動作するはずです。古いモデル(iOS 16 まで遡る)でも動作します。[ソースコードとプロジェクトファイルも提供されています](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS)。コードは醜く、型破りです。多くのアプローチは場当たり的です(例えば、Android のローカライズ用 json ファイルを再利用しています)が、今のところ動作しています。*Nearby Glasses* は [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896) から入手できます。(模倣品と区別できるように original という名前になっています)。サイドロード用の .ipa は [releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) から入手できます。
iOS アプリはバックグラウンドで動作しません。iOS の制約により、BTLE ADV を常時スキャンするために `ForegroundServices` に似たものを使用する方法が見つからなかったためです。そのため、iOS 版の *Nearby Glasses* では *Canary Mode* のみが利用可能です。私よりも Swift と iOS に詳しい方(おそらくそうでしょう)は、ぜひ貢献してください!
- このリポジトリには Android と iOS 両方のアプリコードが含まれているため、フォルダを再編成しました。そのため、[/iOS](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS) と [/Android](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/Android) が存在します。
## 使用方法
- ダウンロードする APK については [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) を参照するか、Google Play Store をご利用ください。F-Droid や Accrescent も今後対応する可能性があります。
<img width="135" height="300" align ="right" alt="Screenshot Nearby Glasses: Settings" src="https://assets.kitploit.com/production/public/readmes/12083/71a0271ff9172cad52e8d83ed9a29ba43b509c7b250be2a0254a5a4371ee3401.png" />
<a href="https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses" target="_blank"><img width="239" height="71" alt="Get It On Google Play" src="https://assets.kitploit.com/production/public/readmes/12083/a7dbeba4623dd255798dd1159e543cdbeeb9e43faa6db7f859b0f9ed3699932c.png" /></a> <a href="https://apps.apple.com/us/app/nearby-glasses-original/id6761056896"><img width="213" height="71" alt="Download on the App Store" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
1. アプリをインストールし(現時点では[Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)または[Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses)から、あるいは[Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896)から)、開きます
2. *Start Scanning* ボタンを押します
3. Bluetooth を有効化する(まだ有効になっていない場合)ため、および近くのデバイスにアクセスするための権限を許可します。一部の Android バージョンでは、位置情報へのアクセス権限も許可する必要があります(主にバージョン 13 より前)。*Nearby Glasses* は位置情報を一切利用しません。信じられない場合は、[コード](https://github.com/yjeanrenaud/yj_nearbyglasses/tree/main/app)をご覧ください
4. スキャンが開始されない場合は、お使いの端末の *Settings* メニューで *Foreground Service* を有効にする必要があるかもしれません(下記参照)
5. これで準備完了です!近くでスマートグラスが検出されると通知が表示されます。*Stop Scanning* を押すか、アプリを完全に終了するまで通知が続きます
7. メニュー(右上の歯車アイコン)で、いくつかの *Settings* を設定できます:
1. *Enable Foreground Service*: これを有効にすると、Android がアプリを一時停止するのを防ぎ、通知が届かなくなります。有効のままにすることをお勧めします
2. *RSSI threshold*: この負の数値は、*Nearby Glasses* が警告を出すデバイスの距離の目安を指定します。技術的には、信号の受信強度を指します。ゼロに近いほど信号が強く、スマートグラスとスマートフォンの距離が近いことを意味します。説明と指針については[上記の RSSI を参照してください](#how)。-75 のままにすることをお勧めします
3. *Enable Notifications*: これを無効にしたくはないでしょう
4. Canary Mode。これが新しいデフォルトです。これを有効にすると、近くにスマートグラスがあることを知らせるシステム通知は表示されず、代わりに周囲にスマートグラスがないことを示すカナリアが表示されます。iOS アプリは技術的な制約によりカナリアモードのみです。<img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary.svg" alt="カナリアのイラスト" width="100" height="100" alignt="left">
5. *Notification/Canary Cooldown*: ここでは、近くで見つかったスマートグラスに関する通知を何件受け取るか、またはカナリアをどのくらいの時間隠すかを指定します。デフォルト値として 10 秒(10000 ms)を選択しました。これにより、通知を見逃すことなく、煩わしさやバッテリーの過度な消耗も避けられます
6. *Enable Log Display*: これを無効にするとバッテリーを節約できる場合があります。カナリアモードでは無効になっています。
7. *Debug*: ログ表示フレームに一致する BLE フレームだけでなく、より多くの情報を表示するために必要です。動作しているかどうかを確認するのに役立ちます。カナリアモードでは無効になっています。
8. *Max log lines*: ログの最大行数です。200 がバッテリー寿命とログの使いやすさ(私のようなマニアにとって)のバランスとして良さそうです。カナリアモードでは無効になっています。
9. *BLE ADV only*: 可読性を高めるため、他の Bluetooth LE フレームをログから除外します。カナリアモードでは無効になっています。
10. *Override Company IDs*: 必要であれば、上記で指定した以外のデバイスについても *Nearby Glasses* に警告させることができます。少なくとも私にとってはデバッグに便利です。不要な場合や使い方がわからない場合は空のままにしてください
11. すべての設定は保存され、即座に反映されます。戻るには、戻るボタンまたはジェスチャーを使用してください
8. エクスポート機能を使うと、アプリのログをテキストファイルとして共有できます。私のようなマニア向けです
9. ログ表示フレームをタップして、ログをコピー&ペーストすることもできます
## ToDos
- **現在、実際の環境で動作しています!** 周囲に検証済みのスマートグラスがある状態で、何人かにテストしてもらうことができました。特にLenaに感謝します!
- ダウンロード用のAPKについては[Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)を参照してください。
- 私は[*Nearby Glasses*をGoogle Playにも公開しました](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses)。ただし、Google Playを避けたい人のために、[GitHub上のリリース](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)および[その他の場所](https://yves.app/nearbyglasses/latest.apk)では常に公開し続けます。
---
- 誤検知を無視リストに設定するオプションを追加する。おそらく通知内に?
- 私はBTやAndroidの専門家ではまったくありません。私が学んだ限りでは、BLEトラフィックをスニッフィングすることでスマートグラスの通信をより深く調査することもできます。そうすれば、デバイスがBT仕様に従って動作することに頼る必要がなくなり、暗号化されたトラフィック送信に対するヒューリスティクスを用いることで誤検知をあまり出さずに済む可能性があります。しかし、私は10年以上BTトラフィックパケットを調べていません。ADVフレームを覚えていたのは幸いです… ですので、この点について助けていただける方がいれば、非常にありがたいです!
---
- スマートグラスの**より多くのメーカーID**を追加する。現在はMeta、Oakley、Snapです。カメラ付きスマートグラスのリストもあると助かります。これについて[ISSUEを開きました](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/56)ので、他の録画スマートグラスに遭遇した際にログ(私見では完全に安全です)を送ることで**協力**していただけるかもしれません。
- 2026年3月24日現在、iOS版も利用可能です。
- **Google Pixelデバイス**での**レイアウトの問題**はバージョン1.0.3で修正されたようです。ステータスバーと混ざってしまいメニューに到達できない場合は、できるだけ早く調査します。それまでの間、画面を横向きモードにして*時計回り(右方向)*に回転してみてください。
## 技術的解決主義?
これを行うには奇妙な場所かもしれませんが、少し聞いてください。これは社会問題に対する技術的解決策であり、その社会問題自体が技術によって増幅されていることを認識しています。
私は技術的解決主義を推進したいわけでも、人々に誤った安心感を与えたいわけでもありません。これは依然として不完全なアプローチであり、おそらく常にそうでしょう。このアプリが存在するからといって、すべてが良いわけではありません。監視技術やプライバシー侵害を抑えるには、より良い解決策が必要です。
## ソースからビルド
*Nearby Glasses*はオープンソースであるため、ソースコードからアプリを自分でビルドすることもできます。これにより、APKに他のライブラリが含まれていないことが保証され、望むものを得ることができます。
このアプリは以下に基づいてビルドされていることに注意してください:
- Gradle Wrapper: 9.3.1
- Android Gradle Plugin: 8.13.2
- Kotlin: 1.9.22
- compileSdk: 36
- targetSdk: 36
- minSdk: 26
- プロダクトフレーバーなし
- リポジトリ: google() と mavenCentral() のみ
- Google Services または Firebase プラグインなし
### 要件
- **JDK 17**(必須 — プロジェクトはJava 17をターゲット)
- **Android SDK Platform 35** がインストール済み
- compileSdk = 35
- targetSdk = 35
- Git
### APKをステップバイステップでビルド
```bash
#Verify Java version:
$java -version
#It must report Java 17.
#Get the source code
$git clone https://github.com/yjeanrenaud/yj_nearbyglasses
$cd yj_nearbyglasses
#Build Debug
$./gradlew clean assembleDebug
#Build Release (with your own signature cert)
$./gradlew clean assembleRelease
#Build unsigned Release for IzzyOnDroid / F-Droid
$./gradlew clean izziFdroid
#Run and Test
$./gradlew test lint
```
## 謝辞
- [@[email protected]](https://social.tchncs.de/@vfrmedia) 警告について手伝ってくれたことに
- [@[email protected]](https://meow.social/@mewsleah) カナリアモードのアイデアを指摘してくれたことに
- [@pojntfx](https://github.com/pojntfx) ライセンスに関する私の誤解を指摘してくれたことに
- [Sarah-Jane B.](https://www.linkedin.com/in/sarah-janeb/) UXデザインのヒントについて
- Lena Radau スペイン語への翻訳について
- Marcel L. フィードバックとiOSアプリのテストについて
- Lena Hansen フィールドテストについて
- すでにアプリにフィードバックを提供してくれたすべての人々に!
## ライセンスとクレジット
**アプリアイコン**: アイコンは <a href="https://www.svgrepo.com/svg/434090/glasses" title="Glasses SVG Vector">Glasses SVG Vector by sensa, licensed under CC0 1.0 Universal</a> に基づいています。<br/><br/><br/>
**ライセンス**: このアプリ *Nearby Glasses* は [AGPL-3.0 license](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/LICENSE) の下でライセンスされています。<br/>
**カナリア**: カナリアのイラストは私が作成し、[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) の下でライセンスされています。これらは生のsvgファイル([InkScape](https://inkscape.org/) で作成)として提供し、アプリのリソース用に当然ながらxmlに変換しました<br/>