13 package ai.picovoice.rhinodemo;
15 import android.Manifest;
16 import android.content.pm.PackageManager;
17 import android.os.Bundle;
18 import android.util.Log;
19 import android.view.LayoutInflater;
20 import android.view.View;
21 import android.view.ViewGroup;
22 import android.widget.Button;
23 import android.widget.TextView;
24 import android.widget.ToggleButton;
26 import androidx.annotation.NonNull;
27 import androidx.appcompat.app.AlertDialog;
28 import androidx.appcompat.app.AppCompatActivity;
29 import androidx.constraintlayout.widget.ConstraintLayout;
30 import androidx.constraintlayout.widget.Guideline;
31 import androidx.core.app.ActivityCompat;
32 import androidx.core.content.ContextCompat;
40 private final String
ACCESS_KEY =
"${YOUR_ACCESS_KEY_HERE}";
53 .setContextPath(
"smart_lighting_android.rhn")
54 .setSensitivity(0.25
f)
62 "%s\nMake sure your AccessKey '%s' is a valid access key.",
74 onRhinoError(
"Failed to initialize Porcupine " + e.getMessage());
81 runOnUiThread(
new Runnable() {
91 final Map<String, String> slots = inference.
getSlots();
92 if (slots.size() > 0) {
94 for (String key : slots.keySet()) {
95 intentTextView.append(String.format(
" \"%s\" : \"%s\",\n", key, slots.get(key)));
109 runOnUiThread(
new Runnable() {
121 getApplicationContext(),
122 R.drawable.button_disabled));
129 ConstraintLayout.LayoutParams intentParam = (ConstraintLayout.LayoutParams)
intentTextView.getLayoutParams();
135 protected void onCreate(Bundle savedInstanceState) {
136 super.onCreate(savedInstanceState);
137 setContentView(
R.layout.activity_rhino_demo);
156 return ActivityCompat.checkSelfPermission(
this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
160 ActivityCompat.requestPermissions(
this,
new String[]{Manifest.permission.RECORD_AUDIO}, 0);
165 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
166 if (grantResults.length == 0 || grantResults[0] == PackageManager.PERMISSION_DENIED) {
192 AlertDialog.Builder builder =
new AlertDialog.Builder(
MainActivity.this);
193 ViewGroup viewGroup = findViewById(
R.id.content);
194 View dialogView = LayoutInflater.from(view.getContext()).inflate(
R.layout.context_cheat_sheet, viewGroup,
false);
195 builder.setView(dialogView);
197 TextView contextField = (TextView) dialogView.findViewById(
R.id.contextField);
200 AlertDialog dialog = builder.create();