【UseCase】Androidアプリがエミュレーター上で実行されているかを検出する方法

はじめに

時々プロダクトマネージャーから要望があります
リリース後のアプリが
エミュレーター上で実行されるのを防ぎたいという
ここではさまざまな検出方法を集めました
共有します

検出方法
1. Androidのビルトインプロパティを使用する

この方法は、Androidの Build クラスを使用して、さまざまなハードウェアとソフトウェアのプロパティをチェックします:

2. 特定のファイルをチェックする

一部のファイルはエミュレーター環境にのみ存在します。これらのファイルが存在するかどうかを確認できます:

3. 電話番号をチェックする

エミュレーターには通常、特定の電話ネットワーク設定があります:

4. 複数の方法を組み合わせる

上記のすべての方法を組み合わせて
エミュレーターかどうかを判断します
ですが、すべてのエミュレーターを完璧に検出できるとは限らないと思います
エミュレーター開発者がこれらの検出テクニックを知っていれば
理論的にはこれらの方法を回避するエミュレーターを作成できるでしょう

考慮事項

上記はエミュレーターを識別する可能性のある方法にすぎません
実際には、次のような状況に遭遇する可能性があります:

  1. これらの方法は100%信頼できるわけではありません。エミュレーターは実機をシミュレートするように設計できるからです
  2. 一部の実機が誤ってエミュレーターと識別される可能性があります(メーカーのデバイスがチェックしているプロパティや特性を欠いている場合)
  3. 別のアプローチを検討してください:
    遭遇したエミュレーターを特定的にブロックすることもできます
まとめ
  • 精度を高めるために複数の検出方法を組み合わせる

  • 新しいエミュレーターに適応するために検出ロジックを定期的に更新する
    これはケースバイケースで対応する必要があるかもしれません
    QAがテストを手伝ってくれるので
    問題が発生した場合
    彼らがあなたに報告してくれます
    そうすれば特定の問題に対処できます

  • この方法が必要かどうかを検討する
    誤検出によるユーザー体験への影響を避けるため

  • これらのテクニックは有用な情報を提供できますが
    絶対的に信頼できるわけではありません
    これらの検出結果に基づいたロジックを実装する前に
    潜在的な影響と必要性を検討してください

You might also enjoy