Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.nesbang.rtltesting;
- import android.content.Intent;
- import android.net.Uri;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MenuItem;
- import android.view.Menu;
- import android.widget.Toast;
- public class MainActivity extends AppCompatActivity {
- private boolean isConnected = false;
- private int rtlSamp = 2100000;
- private int rtlPort = 1234;
- private MenuItem menuConnect;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- /**
- * Add menu items
- */
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Group 0, ID 0
- menuConnect = menu.add(0, 0, Menu.FIRST, "");
- menuConnect.setIcon(R.drawable.ic_play_arrow_white_48dp);
- menuConnect.setShowAsAction(Menu.FLAG_ALWAYS_PERFORM_CLOSE);
- return super.onCreateOptionsMenu(menu);
- }
- /**
- * Handle menu item events
- */
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case 0: // Start/Stop
- startStop();
- default:
- return super.onOptionsItemSelected(item);
- }
- }
- /**
- * Connect to RTL_TCP driver
- */
- private void startStop() {
- if (!isConnected) { // Connect
- out("connect", "Connecting to RTL_TCP");
- toast("Connecting...", Toast.LENGTH_SHORT);
- Intent rtlIntent = new Intent(Intent.ACTION_VIEW).setData(Uri.parse("iqsrc://-a 127.0.0.1 -p " + String.valueOf(rtlPort) + " -s " + String.valueOf(rtlSamp)));
- startActivityForResult(rtlIntent, 1234);
- }
- else { // Disconnect
- out("connect", "Disconnecting from RTL_TCP");
- toast("Disconnecting...", Toast.LENGTH_SHORT);
- //TODO: Disconnect from RTL_TCP through TCP Client
- }
- }
- private void connected() {
- out("onActivityResult", "Driver returned OK");
- toast("Connected!", Toast.LENGTH_SHORT);
- isConnected = true;
- menuConnect.setIcon(R.drawable.ic_stop_white_48dp);
- //TODO: TCP Client setup
- }
- /**
- * Result from rtlIntent
- *
- * @param requestCode Intent request code (1234 for rtlIntent)
- * @param resultCode Intent result (i.e. RESULT_OK)
- * @param data Intent data
- */
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode != 1234) {
- // Result is not from rtlIntent
- out("onActivityResult", "Wrong request code: " + String.valueOf(requestCode));
- return;
- }
- if (resultCode == RESULT_OK) {
- // Driver has connected to RTL device and rtl_tcp is running
- connected();
- } else {
- // Driver failed to start
- String err = data.getStringExtra("detailed_exception_message");
- out("onActivityResult", "Driver returned error: " + err);
- alert("RTLSDR Driver Error", err);
- }
- }
- /**
- * Console write utility
- *
- * @param src Message source (method usually)
- * @param msg Message content
- */
- private void out(String src, String msg) {
- Log.i(src, msg);
- }
- /**
- * Alert dialog utility
- *
- * @param title Alert title
- * @param msg Alert message
- * @return AlertDialog object
- */
- private AlertDialog alert(String title, String msg) {
- AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
- alertBuilder.setMessage(msg);
- alertBuilder.setTitle(title);
- alertBuilder.setPositiveButton(R.string.dismiss, null);
- AlertDialog alert = alertBuilder.create();
- alert.show();
- return alert;
- }
- /**
- * Toast message utility
- *
- * @param msg Toast content
- * @param len Toast duration (i.e. Toast.LENGTH_SHORT / Toast.LENGTH_LONG)
- */
- private void toast(String msg, int len) {
- Toast.makeText(this, msg, len).show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement