Ich versuche, eine Zeichenfolge von meinem Android-Gerät an das andere Gerät zu senden. In meinem Code versuche ich Datum und Uhrzeit abzurufen und in einer Zeichenfolge zu speichern und dann diese Zeichenfolge über Bluetooth an das Gerät zu senden.Problem beim Senden einer Zeichenfolge von Android an ein anderes Gerät über Bluetooth
Das Problem ist, wenn ich die Zeichenfolge senden, einige seiner Zeichen fehlen, wenn sie von dem anderen Gerät empfangen werden.
mein Code:
private void time() {
int day = 0;
Date now = new Date();
String sdf = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(now);
switch (sdf) {
case ("Monday"):
day = 1;
break;
case ("Tuesday"):
day = 2;
break;
case ("Wednesday"):
day = 3;
break;
case ("Thursday"):
day = 4;
break;
case ("Friday"):
day = 5;
break;
case ("Saturday"):
day = 6;
break;
case ("Sunday"):
day = 7;
break;
}
int mm = Calendar.getInstance().get(Calendar.MINUTE);
int HH = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
int dd = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
int MM = Calendar.getInstance().get(Calendar.MONTH) + 1;
int yy = Calendar.getInstance().get(Calendar.YEAR) % 100;
String time2 = "A"+mm+HH+"0"+day+dd+MM+yy+"B";
sendMessage(time2);
}
ich meinen String senden durch den Aufruf nachrichts() Funktion, die unten angegeben ist.
Code:
private void sendMessage(String message) {
// Check that we're actually connected before trying anything
if (mChatService.getState() !=
com.example.hasani.bluetoothterminal.BluetoothChatService.STATE_CONNECTED) {
Toast.makeText(getActivity(), R.string.not_connected, Toast.LENGTH_SHORT).show();
mStartButton.setBackgroundResource(R.color.button_default);
mCalButton.setBackgroundResource(R.color.button_default);
mTestButton.setBackgroundResource(R.color.button_default);
mManButton.setBackgroundResource(R.color.button_default);
mAutoButton.setBackgroundResource(R.color.button_default);
return;
}
// Check that there's actually something to send
if (message.length() > 0) {
// Get the message bytes and tell the BluetoothChatService to write
byte[] send = message.getBytes();
while (!mChatService.write(send))
{
try{
Thread.sleep(10);
}
catch (InterruptedException ex){
//Log.d(TAG,"Interrupted Exception");
//break;
}
}
// Reset out string buffer to zero and clear the edit text field
mOutStringBuffer.setLength(0);
}
}
Aber wenn ich meine Zeichenfolge als String t = „A000000000000B oder "A111111111111B"(Länge = 14) gesetzt, dann ist die Zeichenfolge, die von dem anderen Gerät empfangen wird, und ich kann bewegen weitere Operationen
Code:.
private void time() {
int day = 0;
Date now = new Date();
String sdf = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(now);
switch (sdf) {
case ("Monday"):
day = 1;
break;
case ("Tuesday"):
day = 2;
break;
case ("Wednesday"):
day = 3;
break;
case ("Thursday"):
day = 4;
break;
case ("Friday"):
day = 5;
break;
case ("Saturday"):
day = 6;
break;
case ("Sunday"):
day = 7;
break;
}
int mm = Calendar.getInstance().get(Calendar.MINUTE);
int HH = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
int dd = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
int MM = Calendar.getInstance().get(Calendar.MONTH) + 1;
int yy = Calendar.getInstance().get(Calendar.YEAR) % 100;
String time2 = "A000000000000B"; //*just to check out assigning this value*//
sendMessage(time2);
}
das heißt, wenn ich mit einer Länge = 14 Zeichenfolge wie "A000000000000B" sende, es wird akzeptiert, aber wenn auf Berechnung j. Genau wie ich oben, fehlen Werte von der Startposition der Zeichenfolge.
Bitte Hilfe! Vielen Dank!
Wenn meine Minute 15 angenommen wird, tritt das Problem immer noch auf. –
@AkhilNair Sie sollten zeigen, wie spät es in Ihrem Absender ist und was Sie erhalten. –
Angenommen, ich sende A150304221216B, dann erhalte ich 150304221216B. –