アプリでファイルの「インポート - エクスポート」プロセス (gmail クライアントを使用) を設定しました。これにより、ユーザーは相互に、またはデバイス間でのみ kml ファイルを共有できます。最もよく理解できるように、ユーザーがたどる手順を読んでください。
ファイル出力プロセス:
1) ユーザーが目印を地図に追加します。
2) ユーザーは目印を kml 形式で /sdcard にユーザー定義の名前 (「Saved.kml」としましょう) で保存します。
3) ユーザー「エクスポート」Saved.kml を gmail の添付ファイル経由で。
処理中のファイル:
1) ユーザーが gmail の添付ファイルをデバイスのダウンロード フォルダーに保存します。
2) ユーザーは [KML のインポート] を選択し、リストから Saved.kml を選択します。
3)すべてが完璧に機能します!目印は、エクスポート/期待どおりにマップに表示されます!
1 つの大きな欠陥を除いて... これは、インポート/エクスポートに同じデバイスを使用する場合にのみ機能します。私は 2 つのデバイスを持っています。Nexus 7 と LG Motion のどちらでも問題なく動作します。しかし、私はそれを2つの間で機能させることができず、非常にイライラし始めています. これが私が試したことです:
マニフェストの変更:
android:sharedUserId="com.xxx.xxx"
android:sharedUserLabel="@string/sharedUserLabel"
Runtime.getRuntime().exec( "chmod 444 Saved.kml" ); // (Android レベル 4 をサポートする必要があります)
Saved.kml を解析する直前にこれを試してみました -- importFileIn.renameTo(importFileOut); ファイルの名前は変更されますが、それでも解析に失敗します。
adb シェルの表示: -rw-rw-r-- root sdcard_rw 867 2013-02-28 10:39 Saved.kml -rw-rw-r-- root sdcard_rw 867 2013-02-28 11:44Re Savednamed.kml
「adb push」を使用しましたが、プッシュされたファイルにまったく同じユーザー ID/権限が表示されましたが、まだ読み込まれません。
これを見つけたとき、私は公開前の土壇場でテストを行っていました。同じデバイスでのテストでは、単一の問題はありませんでした...助けてください。