Permissions

アプリ権限

FA Labo PLC Console が使用する Android / iOS の権限と、その用途です。権限はソースコードの Manifest、Info.plist、ファイル入出力、QR読込実装を確認して整理しています。

概要

実機通信は、ユーザーがプロジェクトで設定した PLC の IP アドレス、ポート、通信方式に対して行います。開発者サーバーへの PLC データ送信、広告、トラッキング、解析 SDK は使用しません。

QR読込はカメラを使います。JSON / CSV / ログの読込・書出は OS のファイル選択または保存ダイアログでユーザーが選んだファイルだけを対象にします。

Android

INTERNET
MELSEC / KEYENCE の実機通信で、ユーザーが設定した PLC へ TCP / UDP 接続するために使用します。
ACCESS_NETWORK_STATE
端末のネットワーク状態を確認し、通信可否やエラー表示の判断に使用します。
CHANGE_NETWORK_STATE
PLC接続に使用するWi-Fi / Ethernetネットワークを通信単位で選択するために使用します。
CAMERA
ProjectBuilder に表示した QR を読み込むために使用します。QR読込画面を開いた時に許可を求めます。
POST_NOTIFICATIONS
記録・Trap監視を継続するforeground serviceとTrap検出を通知するために使用します。
BILLING
Google Playで実機通信機能を購入・復元するために使用します。
FOREGROUND_SERVICE
タイムチャート記録中に、バックグラウンドへ移った場合でも記録を継続するための foreground service に使用します。
FOREGROUND_SERVICE_CONNECTED_DEVICE
PLCへ接続した状態でタイムチャート記録やTrap監視を継続するforeground serviceの種別です。

カメラ機能は android.hardware.camerarequired=false として宣言しています。カメラのない端末でも、QR読込以外の機能を使える前提です。

iOS

Local Network
NSLocalNetworkUsageDescription で、ユーザーが設定した PLC との TCP / UDP 通信に使うことを説明しています。
Camera
NSCameraUsageDescription で、ProjectBuilder の QR からプロジェクト設定を取り込むために使うことを説明しています。
Local networking
NSAllowsLocalNetworking を有効にし、ローカルネットワーク上の PLC へ接続できるようにしています。

現在の実装では Bonjour による PLC 自動検出、端末内写真ライブラリ、位置情報、連絡先、マイク、Bluetooth は使用しません。

ストレージとファイル

Android 版は READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGEREAD_MEDIA_*MANAGE_EXTERNAL_STORAGE を宣言していません。JSON / CSV / ログは Android の document picker / create document を使い、ユーザーが選んだファイルだけを読み書きします。

iOS 版は SwiftUI の file importer / file exporter を使い、ユーザーが選んだ JSON / CSV / ログファイルだけを読み書きします。プロジェクト、設定、コメント、履歴はアプリの Application Support 領域に保存します。

QR とカメラ画像

カメラは QR コードの読み取りに使います。QR の内容はプロジェクトJSONを分割・圧縮したプロジェクトデータです。カメラ画像や動画を保存したり、開発者サーバーへ送信したりする用途では使用しません。

ストア申告との関係

App Store の App Privacy と Google Play の Data safety は、このページと プライバシーポリシー の内容に合わせます。権限や課金実装が変わった場合は、このページも更新します。