Как отправить данные (String) с износа Android на телефон Android - PullRequest
0 голосов
/ 20 октября 2018

В настоящее время я сталкиваюсь с проблемой при отправке моих данных, которые являются строкой, с моего износа Android на мой телефон Android.Я уже сделал несколько кодов для этого.Так что у меня есть мое приложение на моем телефоне Android, которое будет получать данные из приложения в приложении для Android, которое я тоже сделал.

Мое приложение для телефона Android может получать данные, которые отправляет приложение для Android Wear, но оно очень медленное и задерживается, и через 5 секунд оба приложения аварийно завершают работу.Пожалуйста, посмотрите на мои коды.Я думаю, что что-то пропустил, но я не могу узнать.

Я отправляю жесты: «Влево», «Вправо», «Вниз», «Вниз», «Отпущено», «Повернуть влево» и «Повернуть вправо»

Я просто новичок в разработке для Android.Пожалуйста, помогите мне.

Вот код приложения Android Wear:

@Override
   public void onSensorChanged(SensorEvent event) {

    float[] rotMatrix = new float[9];
    float[] rotVals = new float[3];

    SensorManager.getRotationMatrixFromVector(rotMatrix, event.values);
    SensorManager.remapCoordinateSystem(rotMatrix,
            SensorManager.AXIS_X, SensorManager.AXIS_Y, rotMatrix);

    SensorManager.getOrientation(rotMatrix, rotVals);
    float azimuth = (float) Math.toDegrees(rotVals[0]);
    float pitch = (float) Math.toDegrees(rotVals[1]);
    float roll = (float) Math.toDegrees(rotVals[2]);

    if (azimuth < -15)
        {
            mData.setText("Left");

            sendMessage("Left");
        }

        else if (azimuth > 15)
            {
                mData.setText("Right");

                sendMessage("Right");
            }

        else if (roll > 20 && roll < 45)
            {

                mData.setText("Down");

                sendMessage("Down");
            }

        else if (roll > 45)
            {

                mData.setText("DownFast");

                sendMessage("DownFast");
            }

        else if (pitch > 40)
            {

                mData.setText("RotateLeft");

                sendMessage("RotateLeft");
            }

        else if (pitch <-40)
            {

                mData.setText("RotateRight");

                sendMessage("RotateRight");
            }

        else if (azimuth > -15 && azimuth < 15 && roll <20 && pitch > -40 && pitch < 40 )
            {

                mData.setText("Released");

                sendMessage("Released");
            }


}

@Override
public void onAccuracyChanged(Sensor sensor, int i) {

}

private GoogleApiClient getGoogleApiClient(Context context) {
    return new GoogleApiClient.Builder(context)
            .addApi(Wearable.API)
            .build();
}

private void retrieveDeviceNode() {
    final GoogleApiClient client = getGoogleApiClient(this);
    new Thread(new Runnable() {
        @Override
        public void run() {
            client.blockingConnect(30000, TimeUnit.MILLISECONDS);
            NodeApi.GetConnectedNodesResult result =
                    Wearable.NodeApi.getConnectedNodes(client).await();
            List<Node> nodes = result.getNodes();
            if (nodes.size() > 0) {
                nodeId = nodes.get(0).getId();
            }
            client.disconnect();
        }
    }).start();
}

private void sendMessage(final String message) {
    final GoogleApiClient client = getGoogleApiClient(this);
    if (nodeId != null && nodeId != "") {
        new Thread(new Runnable() {
            @Override
            public void run() {
                client.blockingConnect(30000, TimeUnit.MILLISECONDS);
                Wearable.MessageApi.sendMessage(client, nodeId, "/message", message.getBytes());
                client.disconnect();
            }
        }).start();
    }
}
...