![](/img/trans.png)
[英]Project Tango onPoseAvailable() and getPoseAtTime() discrepancies
[英]Project Tango: Export ADF to sdcard
我正在嘗試將ADF從項目探戈導出到SD卡,使用來自文檔的代碼示例,並且它對我失敗了。 我能夠通過正確的導出路徑成功彈出導出對話框。 但是當我點擊導出按鈕時,我的日志出現故障
12-16 00:48:12.203 192-603/? E/tango_service_library_context﹕ bool RuntimeExportAreaDescription(const string&, const string&, const string&): Internal error occured opening file: /storage/emulated/0/c5617dae-01b0-4825-8ee1-777c17693414
12-16 00:48:12.209 8246-8246/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.projecttango.tango, PID: 8246
com.google.atap.tangoservice.TangoInvalidException
at com.google.atap.tango.TangoInternal.throwTangoExceptionIfNeeded(TangoInternal.java:118)
at com.google.atap.tango.TangoInternal.exportAreaDescriptionFile(TangoInternal.java:104)
at com.google.atap.tango.RequestImportExportActivity.onExportAccepted(RequestImportExportActivity.java:83)
at com.google.atap.tango.RequestImportExportDialog$1.onClick(RequestImportExportDialog.java:108)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5030)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
我的應用程序具有對外部存儲的讀/寫訪問權限,我通過編寫具有相同路徑的文件進行了驗證。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
這是我的導出代碼(取自探戈文檔):
adfToExport = GetAdfs().get(0);
String externalStorageDirectory = Environment.getExternalStorageDirectory().toString();
/* this was just a test to verify the app can write to the path
try {
String path = externalStorageDirectory + "/c5617dae-01b0-4825-8ee1-777c17693414";
File file = new File(path);
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append("testing 1 2 3");
myOutWriter.close();
fOut.close();
} catch (Exception ex) {
Log.e(LOG_TAG, "failed to write file: " + path, ex);
}
*/
Intent exportIntent = new Intent();
exportIntent.setClassName(INTENT_CLASSPACKAGE, INTENT_IMPORTEXPORT_CLASSNAME);
exportIntent.putExtra(EXTRA_KEY_SOURCEUUID, adfToExport);
exportIntent.putExtra(EXTRA_KEY_DESTINATIONFILE, externalStorageDirectory);
startActivityForResult(exportIntent, Tango.TANGO_INTENT_ACTIVITYCODE);
嘗試使用下面的代碼硬編碼導出路徑,而不是從Environment.getExternalStorageDirectory()
獲取外部存儲的路徑:
String mapsFolder = "/sdcard/maps";
File file = new File(mapsFolder);
我將來自AreaLearningSample的代碼修改為getAppsSpaceADFFolder()函數到下面,它對我來說很好。
private String getAppSpaceADFFolder()
{
// String mapsFolder = getFilesDir().getAbsolutePath() + File.separator + "Maps";
String mapsFolder = "/sdcard/maps";
File file = new File(mapsFolder);
if (!file.exists()) {
file.mkdirs();
}
return mapsFolder;
}
我還沒弄清楚為什么Environment.getExternalStorageDirectory()
不起作用並拋出上面提到的異常,我會在得到一些結果后編輯這個答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.