diff --git a/hmt1developerexamples/src/main/java/com/realwear/hmt1developerexamples/AudioCaptureActivity.java b/hmt1developerexamples/src/main/java/com/realwear/hmt1developerexamples/AudioCaptureActivity.java
index ad7cb64..690a84b 100644
--- a/hmt1developerexamples/src/main/java/com/realwear/hmt1developerexamples/AudioCaptureActivity.java
+++ b/hmt1developerexamples/src/main/java/com/realwear/hmt1developerexamples/AudioCaptureActivity.java
@@ -7,7 +7,9 @@
package com.realwear.hmt1developerexamples;
+import android.Manifest;
import android.app.Activity;
+import android.content.pm.PackageManager;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaPlayer;
@@ -24,6 +26,10 @@
import android.widget.TextView;
import android.widget.Toast;
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
@@ -91,6 +97,15 @@ protected void onCreate(Bundle savedInstanceState) {
mRate16Button = (RadioButton) findViewById(R.id.rate16Button);
mRate44Button = (RadioButton) findViewById(R.id.rate44Button);
mRate48Button = (RadioButton) findViewById(R.id.rate48Button);
+
+ // Check that permissions are granted before continuing
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
+ != PackageManager.PERMISSION_GRANTED ||
+ ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ != PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
+ }
}
/**
@@ -489,4 +504,17 @@ private static byte[] intToByteArray(int data) {
private static byte[] shortToByteArray(short data) {
return new byte[]{(byte) (data & 0xff), (byte) ((data >> 8) & 0xff)};
}
+
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ for (int grantResult : grantResults) {
+ if (grantResult != PackageManager.PERMISSION_GRANTED) {
+ setResult(-1);
+ Toast.makeText(this, R.string.permissions_error, Toast.LENGTH_LONG).show();
+ finish();
+ }
+ }
+ }
}
diff --git a/hmt1developerexamples/src/main/res/values/strings.xml b/hmt1developerexamples/src/main/res/values/strings.xml
index a1f7ad4..908ef85 100644
--- a/hmt1developerexamples/src/main/res/values/strings.xml
+++ b/hmt1developerexamples/src/main/res/values/strings.xml
@@ -49,4 +49,7 @@
Say \"Show Help\" to see available commands
Speak Now
Please say the time Example: One Forty Five
+
+
+ This activity cannot launch without required permissions.