2012-03-19 15 views
0

私は観光セクター向けのAndroidアプリを開発しています。すべてのデータはインターネットに接続せずにオフラインで利用できます。このアプリには、データもオフラインモードでしか利用できない地図が含まれています。だから、osmdroidでOpenstreetmapを使って、必要なすべての地図データがapp-fileに含まれています。インターネットに接続できる唯一のアクティビティは、アプリを起動するとき、利用可能な新しいデータがあるかどうかをチェックし、最終的に新しいデータをアプリフォルダにダウンロードするときです。オフラインアプリのデータ更新

私は、ビューのブロック図を追加しました: enter image description here

私の問題は、私は打ち上げのアクティビティ(画像の赤いブロック)でのみ最初の活動を行うことができ、に接続する方法であり、インターネットに接続し、他のすべてのアクティビティがインターネットに接続できないことを確認してください。 Openstreetmapでの私の活動が、統合された地図の領域からスクロールしたときに、新しい地図タイルをダウンロードするためにインターネットに接続できないことが非常に重要なためです。 Androidデバイス全体のネットワーク接続を完全にオフにすることは意図されていないため、他のアプリでもオフになっています。

ありがとうございます!

答えて

0

あなたがマニフェストでインターネットのため

<uses-permission /> 

を宣言すると、それがすべての活動に適用されます。外部ライブラリの機能を制限することはできません。ですから、信頼できるライブラリを使用してみてください。

0

ご返信ありがとうございます!

しかし、私は自分の問題を解決しました。

私は使用することができます。それは確かに私の問題であり、必要なマップタイルがまだローカルに保存されていない場合、地図の画面もネットから新しいデータをダウンロードするということでした。

私は最終的に、osmdroid:ローカルに格納されたタイルでマップタイルのソースを選択するか、インターネットからダウンロードする方法を見つけました。あなたは、タイルソースを設定するには、このメソッドを持っているosmdroid-アンドロイド-xxx.jarのOpenStreetMapTilesOverlayクラスで :

/** 
    * Set whether to use the network connection if it's available. 
    * @param aMode 
    * if true use the network connection if it's available. 
    * if false don't use the network connection even if it's available. 
    */ 
    public void setUseDataConnection(boolean aMode) { 
      mTileProvider.setUseDataConnection(aMode); 
    } 

だから、私は唯一のオフラインマップタイルを使用するには、このコードを実装:

mapView.setUseDataConnection(false); 

ここでmapViewは私のOSM MapViewです

素敵な開発があります!

関連する問題