だから私はボタンの色を設定しようとします。それは次のようなものです:
if (D) {Log.d(TAG, "color =" + bytes);};
int c = Color.argb(bytes[4], bytes[3], bytes[2], bytes[1]);
btnStart.setBackgroundColor(c);
if (D) {Log.d(TAG, "color " + bytes[4]+ bytes[3]+bytes[2]+ bytes[1]);};
break;
LogCat に次の出力が表示されます。-1ではなく、配列に他の値が表示されることを期待しています...
ここに完全なコードがあります
mainHandler=new Handler(){
public void handleMessage(Message msg) {
switch (msg.what){
case TOAST:
Bundle bundle = msg.getData();
String string = bundle.getString("myKey");
Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT).show();
break;
case NEW_SMS:
if (D) {Log.d(TAG, "newSms recieved");}
byte[] bytes =(byte[]) msg.obj;
switch (bytes[0]){
case SMS_TEXT:
bytes = shiftArrayToLeft(bytes);
String readMessage = new String(bytes, 0, msg.arg1);
txtView.setText(readMessage);
break;
case SMS_COLOR:
if (D) {Log.d(TAG, "color =" + bytes);};
//LinearLayout lLayout = (LinearLayout) findViewById(R.id.lLayout);
int c = Color.argb(bytes[4], bytes[3], bytes[2], bytes[1]);
btnStart.setBackgroundColor(c);
if (D) {Log.d(TAG, "color " + bytes[4]+ bytes[3]+bytes[2]+ bytes[1]);};
break;
}
}
}};
これは、Bluetooth メッセージを処理するハンドラです