Es posible que su impresora no reconozca el puerto COM virtual y por tanto no pueda comunicarse con ella.
Si investigamos en el Administrador de dispositivos de Windows probablemente nos aparezca FT232R USB UART y al hacer doble click nos encontraremos que no esta disponible el controlador o que hay un problema con esto , todo ello incluso habiendo instalado el IDE de Arduino o cualquier otro sw de impresión como Cura o el EasyPrint ( estos programas ya suelen instalar dicho driver).
Para actualizar el driver podemos intentar hacerlo con Windows Upadate pero esto probablemente no corregirá el problema lamentablemente
La solución mas sencillas y rápida para solucionar el problema instalar el ftdi ft232rl driver para windows 10, es decir instalar el driver VCP del fabricante ftdichip
Controladores VCP
Los controladores del puerto COM virtual (VCP) hacen que el dispositivo USB aparezca como un puerto COM adicional disponible para la PC. El software de aplicación puede acceder al dispositivo USB de la misma manera que accedería a un puerto COM estándar.
Los controladores VCP actualmente disponibles del fabricante ftdichip son compatibles con los siguientes s.o:
Es decir para ambiente Windows , para actualizar el driver y que el sw de impresión nos reconozca la impresora seguiremos lo siguientes pasos
Nos iremos a al siguinte url en el caso qeu nuestro equipo tenga W10 : https://www.ftdichip.com/Drivers/CDM/CDM21228_Setup.zip
Descargaremos el sofware ( es un archivo zip comprimido)
Lo descomprimimos en una ruta de nuestro pc
Ejecutaremos el archivo de instalación
Enseguida en el explorador de dispositivos ya nos debería aparecer el puerto COM
Ya podemos iniciar el sw de impresión donde nos debería aparecer el puerto para conectarnos a la impresora
Esta version por cierto incluye la siguiente versión del sistema operativo Windows: Windows 7, Windows Server 2008 R2 y Windows 8, 8.1, Windows server 2012 R2, Windows Server 2016 y por suspuesto la mas reciente de Windows 10. Además, como Windows 8 RT es un sistema cerrado que no permite Instalación de controladores de terceros Nuestro controlador de Windows 8 no admitirá esta variante del sistema operativo. Debe usar la compilación de Windows RT para esta plataforma.
También incluye las siguientes versiones de los sistemas operativos basados en Windows CE 4.2-5.2: Windows Mobile 2003, Windows Mobile 2003 SE, Windows Mobile 5, Windows Mobile 6, Windows Mobile 6.1, Windows Mobile 6.5
Ya no es compatible al 100% con Windows XP, Vista, Server 2003, Server 20082012-04-13 , Windows 98 / ME25-11-2004 , Windows 98 / ME2004-03-12 ,etc aunque exite Certificado WHQL y También disponible como ejecutable de configuración (esta es la versión final de FTDI antes de que Microsoft dejara de certificar los controladores para estas versiones de Windows).
Mas información en https://www.ftdichip.com/Drivers/VCP.htm
En realidad no es demasiado difícil crear un aplicación capaz de enviar correos electrónicos usando el IDE de Android Studio .De hecho gracias al APi de Javmail podremos enviar e-mails sin utilizar la aplicación de correo electrónico que android incluye por defecto utilizando javamail API para crear nuestro propio email del remitente herramientas que enviará correo internamente.
Tenemos que seguir los pasos que se dan a continuación:
1. Descargar los archivos de biblioteca de api de java.
Tenemos que descargar tres librerías java:
activation.jar
mail.jar.
additionnal.jar
Lo puede descargar de Clic aquí.
2 Ahora crear una app en Android studio
3-Ir a la carpeta del proyecto ->aplicación -> libs y agregue todos los archivos jar en libs ahora uno por uno, haga clic en biblioteca de archivos en la opción haga clic en Agregar como biblioteca en todos los archivos jar.
También puede Agregar biblioteca por otro camino, pero lo importante es que incluya esta tres librerías:
activation.jar
mail.jar.
additionnal.jar
Ir a archivo >Proyecto estructura > seleccione aplicación> opción derecha haga clic en dependencias ahora haga clic en el botón de pulse(+) para agregar > seleccione dependencia de archivo> archivo seleccione Biblioteca > OK.
4. Ahora abrir el archivo manifest.xml y poner los permisos de internet.
5. Cree la clase de Asyntask para el envío de llamada correo API.
package com.sp.sendmailinternally;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/*** Created by ps205 on 3/1/17.*/public class SendMailAsynTask extends AsyncTask<Void, Void, Void> {
//Declaring Variablesprivate Context context;
private Session session;
//Information to send emailprivate String email;
private String subject;
private String message;
//Progressdialog to show while sending emailprivate ProgressDialog progressDialog;
//Class Constructorpublic SendMailAsynTask(Context context, String email, String subject, String message) {
//Initializing variablesthis.context = context;
this.email = email;
this.subject = subject;
this.message = message;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
//Showing progress dialog while sending emailprogressDialog = ProgressDialog.show(context, "Sending message", "Please wait...", false, false);
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
//Dismissing the progress dialogprogressDialog.dismiss();
//Showing a success message
Toast.makeText(context, "Message Sent", Toast.LENGTH_LONG).show();
}
@Override
protected Void doInBackground(Void... params) {
//Creating properties
Properties props = new Properties();
//Configuring properties for gmail//If you are not using gmail you may need to change the values
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
//Creating a new sessionsession = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
//Authenticating the passwordprotected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(Config.EMAIL, Config.PASSWORD);
}
});
try {
//Creating MimeMessage object
MimeMessage mm = new MimeMessage(session);
//Setting sender address
mm.setFrom(new InternetAddress(Config.EMAIL));
//Adding receiver
mm.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
//Adding subject
mm.setSubject(subject);
//Adding message
mm.setText(message);
//Sending email
Transport.send(mm);
} catch (MessagingException e) {
e.printStackTrace();
}
return null;
}
}
6. Ahora abra MainActivity.java y agregue el siguiente código.
package com.sp.sendmailinternally;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText edittext_recipient_id, edittext_subject, edittext_message;
Button btn_send_mail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initializr vista para encontar vista por idedittext_recipient_id = (EditText) findViewById(R.id.edittext_recipient_id);
edittext_subject = (EditText) findViewById(R.id.edittext_subject);
edittext_message = (EditText) findViewById(R.id.edittext_message);
btn_send_mail = (Button) findViewById(R.id.btn_send_mail);
//activar un listener onclick en un botonbtn_send_mail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//get input data from view
String mRecipientMail = edittext_recipient_id.getText().toString();
String mSubject = edittext_subject.getText().toString();
String mMessage = edittext_message.getText().toString();
new SendMailAsynTask(MainActivity.this, mRecipientMail, mSubject, mMessage).execute(); //llama al contructor de send mail asyntask mediante el envio de un parametroperameter
}
});
}
}
7. Ya puede construir y ejecutar la aplicación
Nota:- cuando ponga su id debe ser accesible acceso menos seguro aplicaciones .Para cambiar configuración para motivos de seguridad de correo vaya a cambiar la configuración y actiíela .
Debe estar conectado para enviar un comentario.