2013-01-18 4 views
7

私は広範なテストを行っていませんが、アプリケーションマニフェストのandroid.permission.ACCESS_MOCK_LOCATIONが動作しないという証拠があります(存在する場合は、モックロケーションプロバイダが許可されます)。 https://play.google.com/store/apps/details?id=com.lexa.fakegpsのような偽のGPSアプリケーションは、ACCESS_MOCK_LOCATIONが設定されているかどうかに関係なく、どのアプリケーションでも動作します。ユーザーがデバイス設定で偽の場所を許可すれば十分だと思われます。アクセス許可ACCESS_MOCK_LOCATIONは無視されますか?

多分、ACCESS_MOCK_LOCATIONは、アプリケーション自体がモックロケーションプロバイダである可能性があることを意味しますか?もしそうなら、それはWRITE_MOCK_LOCATIONのように読むべきであり、名前が示唆するようにアクセス(読み込み)するのではない。機能よりもバグのように聞こえます。これが本当であれば、本当にGPS位置が真であることを保証する方法はありません。

+0

私の答えを確認してください。 – PageNotFound

+0

ありがとうございますが、あなたは本当に私の質問に答えていません。私の懸念は、いくつかのサードパーティのアプリケーションは、ルートになっていないデバイス上でGPS位置を簡単に偽造する可能性があり、GPSを消費するアプリケーションは安全ではないということです。私のアプリはセキュリティアプリケーションです。エンドユーザがこれを使ってGPSの場所を偽造することができれば、あまり有用ではありません。その周りに道がありますか? – JaakL

答えて

1

誰が実際にあなたの質問に答えていないので、私は答えを提供し、その特定の許可をMockLocationリントチェックを無効にします。

をたぶんACCESS_MOCK_LOCATIONが本当にアプリケーションができることを意味します 自身のモックロケーションプロバイダですか?

はい。このアクセス許可により、アプリは「モックロケーション」開発者機能に「アクセス」することができます。これにより、開発者は、実際に物理的に物理的に移動または変更することなく、位置ベースの機能を備えたアプリケーションを開発/テストするための実際のモックロケーションを作成することができます。

Googleでは、テストするアプリや偽データの提供方法を​​知らないため、これを行っています。開発者の機能として、この機能が一般の人に晒されることを軽減します。

+0

ありがとう、明確な答え。だから、これはちょうど混乱する許可の名前です。あなたは私の質問の他の部分を知っていますか?私のアプリは、それがいつも真実でモックの場所を決して使用しないようにするにはどうすればいいのですか? – JaakL

2

あなたは、Android 4.2.1にSettingsに行くことによって行われている開発者モード、従事する最初の必要性 - >About Tablet(底部付近に、おそらく電話用の似たようなと呼ばれる)と、下部に7回Build numberをタップします。タップを開始すると、カウントダウンが表示され、開発者になるためにどれくらいの時間が必要かを表示します。

Settingsに戻るには戻るボタンを押して、そして今あなたがしていた約メニュー上Developer options項目があります - それをクリックして、DEBUGGINGAllow mock locationsをご確認ください。あなたのデバイスは、ACCESS_MOCK_LOCATIONを正しく尊重するようになりました。

(あなたがポータルの周りにいると信じるようにIngressを騙すのがあなたの動機であれば、あなたは運が悪いです。どんなアプリでもこの設定が有効であることを検出でき、 XMの補充には最高の方法です。:-)

+1

-1これは答えではないので、PageNotFoundには有効な答えがあります。 –

3

http://developer.android.com/reference/android/Manifest.permission.htmlではAllows an application to create mock location providers for testingと言われていますので、あなたは正しいと思います。

実際にcom.lexa.fakegpsは、ルート権限を持っている場合にのみ、ACCESS_MOCK_LOCATIONのない場所をモックできます。また、ルート権限を持っていても、Allow mock locationsを偽の場所に切り替える必要があります。だから、私は許可は、システムアプリではない共通のアプリだと思う。システムアプリには、AndroidManifest.xmlの権限を宣言することなく、より多くの権限が与えられます。

1

すなわち

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <uses-permission 
     android:name="android.permission.ACCESS_MOCK_LOCATION" 
     tools:ignore="MockLocation" /> 
</manifest> 
関連する問題