当我按下按钮连接到树莓派时应用程序崩溃

时间:2018-05-30 04:53:29

标签: android raspberry-pi3

当我按下按钮连接到树莓派时,应用程序崩溃了。它打印"检查库存"在TextView中,但是在pi之后立即崩溃并结束程序,所以我认为问题只与AsyncTask有关,但我不确定。

这是我的代码:

public class MainActivity extends AppCompatActivity {

    TextView results;

    public String response;

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        results = findViewById(R.id.countTextView);

        Button thingBtn = findViewById(R.id.thingBtn);


        thingBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                results.setText("Checking Inventory");
                new ConnectTask().execute();
            }
        });
    }

    public String Authentication = "we gucci";

    public class ConnectTask extends AsyncTask<String, Void, String>{
        @Override
        protected void onPreExecute() {
            Log.d(TAG, "AsyncTask starting");
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... message) {
            try {
                Log.d(TAG, "Attempting to Connect to Socket");
                InetAddress serverAddress = InetAddress.getByName("192.168.1.11"); //must change later!!!
                Socket house = new Socket(serverAddress, 5060);
                Log.d(TAG, "Connected to Socket on (" + serverAddress + ", " + house.getPort());

                BufferedOutputStream bos =new BufferedOutputStream(house.getOutputStream());
                bos.write(Authentication.getBytes("UTF-8"));
                bos.flush();

                BufferedReader serverResponse = new BufferedReader(new InputStreamReader(house.getInputStream()));
                response = serverResponse.readLine();
                Log.d(TAG, "Server response: " + response);

                house.close();
                Log.d(TAG, "socket closed");

            }catch (IOException e) {
                System.exit(1);
            }
            return response;
        }

        @Override
        protected void onPostExecute(String response){
            Log.d(TAG, response);
            results.setText(response);   
        }
   }
}

可能是什么原因以及如何解决这个问题?

0 个答案:

没有答案