В настоящее время я сталкиваюсь с проблемой при отправке моих данных, которые являются строкой, с моего износа 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();
}
}