Androidのリモート操作 - 隠してはいけない権限
画面を見るだけよりも、操作を行う機能には高い信頼が必要です。そのため権限の付与と解除を分かりやすくすることを重視しました。

リモート画面を見ることと、その端末上でタップ、ジェスチャー、文字入力を行うことは同じではありません。後者はより高いレベルのアクセスです。Androidではこうした操作にAccessibilityサービスを利用するため、MyDeskViewerではユーザーが理由を理解しないまま権限を有効にする形にはしたくありませんでした。
そこで権限付与の流れをいくつかの段階に分けています。まずアプリ内で、なぜ権限が必要なのかを説明します。その後、ユーザー自身がAndroidの設定画面へ移動し、サービスを明示的に有効にします。最終的に権限を与えるか、取り消すかを決める場所はAndroidのシステム設定です。
開発で意外に時間がかかったのは、設定画面から戻った後の処理でした。サービスが有効になっている場合もあれば、無効のままの場合もあります。Androidがアプリ画面を別の状態で再生成することもあります。それでもユーザーから見れば、ボタンや表示は実際の権限状態を正しく反映しなければなりません。
また、通常の接続とリモート操作の権限を分けることも重要でした。アカウント上でデバイスが見えることと、その端末を操作できることは同じではありません。追加のシステム権限はAndroidが設けている明確な境界であり、MyDeskViewerはその境界を尊重します。
こうした部分は新機能一覧では目立たないかもしれません。しかしリモートアクセス製品では非常に重要です。ユーザーは、いつ操作が有効で、何のための権限で、どこから無効にできるかを理解できる必要があります。
そのため後のバージョンでは、操作機能だけでなく、説明、状態表示、Android設定との行き来も継続的に改善しました。