Partage
  • Partager sur Facebook
  • Partager sur Twitter

Horodatage réception d'info

    24 août 2016 à 17:23:46

    Bonjour tout le monde!

    Je suis en train de développer une appli qui reçoit des messages via USB. J'aimerai obtenir l'heure et la date de la réception de ces messages, je sais déjà que je dois utiliser la classe java.util.date mais quelle est la méthode à appliquer pour afficher la date?

    Merci de votre aide! :D

    -
    Edité par Pablolito 25 août 2016 à 9:26:10

    • Partager sur Facebook
    • Partager sur Twitter
      25 août 2016 à 8:49:32

      Si tu fait un Date today = new Date();  sera initialisé à la date et le jour actuel.
      • Partager sur Facebook
      • Partager sur Twitter
        25 août 2016 à 9:25:56

        Merci de ta réponse, mais du coup comment est ce que je dois définir la variable today et la fonction Date pour avoir la date et l'heure de réception?
        • Partager sur Facebook
        • Partager sur Twitter
          25 août 2016 à 9:42:15

          Tout d'abord Date est une classe et Date() est son constructeur :)

          Ensuite si tu veux récupérer au format text tu peux regarder la Class SimpleDateFormat

          Exemple:

          Date today = new Date();
          
          SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
          
          
          String dateheure = sdf.format(today);
          
          System.out.println(dateheure);



          Si tu veux 

          • Partager sur Facebook
          • Partager sur Twitter
            25 août 2016 à 13:53:07

            Effectivement, je t'avoue que je débute dans le java :honte:

            J'ai essayé la méthode que tu m'as donné mais je n'arrive toujours pas à afficher l'heure à côté des messages...

            • Partager sur Facebook
            • Partager sur Twitter
              25 août 2016 à 14:11:21

              Montre le code que tu as mis en place.
              • Partager sur Facebook
              • Partager sur Twitter
                25 août 2016 à 14:26:16

                public class MainActivity extends AppCompatActivity {
                
                    Button startButton, sendButton, clearButton, stopButton;
                    TextView textView;
                    EditText editText;
                    UsbDevice device;
                    UsbManager usbManager;
                    UsbSerialDevice serialPort;
                    UsbDeviceConnection connection;
                    private static final String ACTION_USB_PERMISSION = "com.example.igps.usbcommunication.USB_PERMISSION";
                
                    UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback(){
                        @Override
                        public void onReceivedData(byte[] arg0){
                            String data;
                            try{
                                data = new String(arg0, "UTF-8");
                                data.concat("/n");
                                tvAppend(textView, data);
                            } catch (UnsupportedEncodingException e) {
                                e.printStackTrace();
                            }
                        }
                    };
                
                    private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
                        @Override
                        public void onReceive(Context context, Intent intent) {
                           if (intent.getAction().equals(ACTION_USB_PERMISSION)){
                               boolean granted = intent.getExtras().getBoolean(UsbManager.EXTRA_PERMISSION_GRANTED);
                               if(granted){
                                   connection = usbManager.openDevice(device);
                                   serialPort = UsbSerialDevice.createUsbSerialDevice(device, connection);
                                   if (serialPort != null){
                                       if (serialPort.open()){ //paramètres de la connection série
                                           setUiEnabled(true);
                                           serialPort.setBaudRate(115200);
                                           serialPort.setDataBits(UsbSerialInterface.DATA_BITS_8);
                                           serialPort.setStopBits(UsbSerialInterface.STOP_BITS_1);
                                           serialPort.setParity(UsbSerialInterface.PARITY_NONE);
                                           serialPort.setFlowControl(UsbSerialInterface.FLOW_CONTROL_OFF);
                                           serialPort.read(mCallback);
                                           tvAppend(textView, "Serial Connection Opened!\n");
                                       } else {
                                           Log.d("SERIAL", "PORT NOT OPEN");
                                       }
                                   } else {
                                       Log.d("SERIAL", "PORT IS NULL");
                                   }
                               } else {
                                   Log.d("SERIAL", "PERM NOT GRANTED");
                               }
                           } else if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)){
                               onClickStart(startButton);
                           } else if (intent.getAction().equals(UsbManager.ACTION_USB_ACCESSORY_DETACHED)){
                               onClickStop(stopButton);
                           }
                        }
                    };
                
                    @Override
                    protected void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.activity_main);
                        usbManager = (UsbManager) getSystemService(this.USB_SERVICE);
                        startButton = (Button) findViewById(R.id.buttonStart);
                        sendButton = (Button) findViewById(R.id.buttonSend);
                        stopButton = (Button) findViewById(R.id.buttonStop);
                        clearButton = (Button) findViewById(R.id.buttonClear);
                        editText = (EditText) findViewById(R.id.editText);
                        textView = (TextView) findViewById(R.id.textView);
                        textView.setMovementMethod(new ScrollingMovementMethod());
                        setUiEnabled(false);
                        IntentFilter filter = new IntentFilter();
                        filter.addAction(ACTION_USB_PERMISSION);
                        filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
                        filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
                        registerReceiver(broadcastReceiver, filter);
                    }
                    public void setUiEnabled(boolean bool){
                        startButton.setEnabled(!bool);
                        sendButton.setEnabled(bool);
                        stopButton.setEnabled(bool);
                        textView.setEnabled(bool);
                    }
                    public void onClickStart(View view){ //Connexion au pager
                        HashMap<String, UsbDevice> usbDevices = usbManager.getDeviceList();
                        if (!usbDevices.isEmpty()){
                            boolean keep = true;
                            for (Map.Entry<String, UsbDevice> entry:usbDevices.entrySet()){
                                device = entry.getValue();
                                int deviceVID = device.getVendorId();
                                if (deviceVID == 0x0483){ //vendorID du pager
                                    PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
                                    usbManager.requestPermission(device, pi);
                                    keep = false;
                                } else {
                                    connection = null;
                                    device = null;
                                }
                                if(!keep)
                                    break;
                            }
                        }
                    }
                
                    public void onClickSend(View view){
                        String string = editText.getText().toString();
                        serialPort.write(string.getBytes());
                        tvAppend(textView, "\nMessage Sent: " + string + "\n");
                    }
                
                    public void onClickStop(View view){
                        setUiEnabled(false);
                        serialPort.close();
                        tvAppend(textView, "\nSerial Connection Closed! \n");
                    }
                
                    public void onClickClear(View view){
                        textView.setText("");
                    }
                
                    private void tvAppend(TextView tv, final CharSequence text) {
                        final TextView ftv = tv;
                        final CharSequence ftext = text;
                
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                ftv.append(ftext);
                            }
                        });
                    }
                
                }
                
                

                Voilà mon code sans ce que tu m'as donné, c'est une peu dans le désordre j'espère que tu réussiras à lire et comprendre.. 

                Où est ce qu'il faudrait que je l'insère pour afficher l'heure et la date à droite du textView, sur la ligne du message correspondant?

                -
                Edité par Pablolito 25 août 2016 à 14:41:05

                • Partager sur Facebook
                • Partager sur Twitter
                  25 août 2016 à 15:29:33

                  Je dirait rajoute sa la ou tu affiche les donnée dans ton TextField ciblé.

                  Tu peux te faire un petite méthode: 

                  public String getTodayString()
                  {
                     Date today = new Date();
                   
                     SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
                   
                   
                     String dateheure = sdf.format(today);
                   
                     return dateheure;
                  
                  }



                  • Partager sur Facebook
                  • Partager sur Twitter

                  Horodatage réception d'info

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown