diff options
author | ninatai <ninatai@google.com> | 2015-05-12 14:16:11 -0700 |
---|---|---|
committer | ninatai <ninatai@google.com> | 2015-05-12 14:16:11 -0700 |
commit | 8940c03baa51593af9388e7ba817939a3117a73f (patch) | |
tree | 38b7ee04c856e58108f05617666950eedb60e192 /LoopbackApp | |
parent | 52c1ca141c8b79de11ed5e77a3995a99b5850b47 (diff) | |
download | drrickorang-8940c03baa51593af9388e7ba817939a3117a73f.tar.gz |
Now when the file path is not found, the path will not show up on Toast (instead of app crashes directly).
Diffstat (limited to 'LoopbackApp')
-rw-r--r-- | LoopbackApp/app/src/main/AndroidManifest.xml | 2 | ||||
-rw-r--r-- | LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java | 37 |
2 files changed, 29 insertions, 10 deletions
diff --git a/LoopbackApp/app/src/main/AndroidManifest.xml b/LoopbackApp/app/src/main/AndroidManifest.xml index cc57817..079f6e9 100644 --- a/LoopbackApp/app/src/main/AndroidManifest.xml +++ b/LoopbackApp/app/src/main/AndroidManifest.xml @@ -32,6 +32,8 @@ <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> + <uses-permission android:name="android.permission.STORAGE" /> <application android:label="@string/app_name" diff --git a/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java b/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java index 97cbb78..3a5acb0 100644 --- a/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java +++ b/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java @@ -24,6 +24,7 @@ import android.database.Cursor; import android.provider.MediaStore; import android.os.ParcelFileDescriptor; + import java.io.FileDescriptor; import android.media.AudioManager; @@ -353,10 +354,16 @@ public class LoopbackActivity extends Activity { //save to a given uri... local file? Uri uri = Uri.parse("file://mnt/sdcard/"+fileName+".wav"); - File file = new File(getPath(uri)); - mFilePathWav = file.getAbsolutePath(); + String temp = getPath1(uri); + // for some devices it cannot find the path + if (temp != null) { + File file = new File(temp); + mFilePathWav = file.getAbsolutePath(); + } else { + mFilePathWav = ""; + } saveToWavefile(uri); Uri uri2 = Uri.parse("file://mnt/sdcard/"+fileName+".png"); @@ -374,8 +381,13 @@ public class LoopbackActivity extends Activity { if (resultData != null) { uri = resultData.getData(); - File file = new File(getPath(uri)); - mFilePathWav = file.getAbsolutePath(); + String temp = getPath1(uri); + if (temp != null) { + File file = new File(temp); + mFilePathWav = file.getAbsolutePath(); + } else { + mFilePathWav = ""; + } saveToWavefile(uri); } @@ -397,13 +409,16 @@ public class LoopbackActivity extends Activity { } } - // method to get the file path from uri - public String getPath(Uri uri) + // method to get the file path from uri. Doesn't work for all devices + public String getPath1(Uri uri) { - String[] p = {MediaStore.Images.Media.DATA}; - Cursor cursor1 = getContentResolver().query(uri, p, null, null, null); - if (cursor1 == null) - return null; + String[] projection = {MediaStore.Images.Media.DATA}; + Cursor cursor1 = getContentResolver().query(uri, projection, null, null, null); + if (cursor1 == null) { + // cursor1.close(); + return uri.getPath(); + } + int ColumnIndex = cursor1.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor1.moveToFirst(); String path = cursor1.getString(ColumnIndex); @@ -411,6 +426,8 @@ public class LoopbackActivity extends Activity { return path; } + + /** Called when the user clicks the button */ public void onButtonZoomOutFull(View view) { |