J'ai un code C qui contient fgets
fonction et j'appelle ce code de android java.Appeler le fichier c dans android java: Fonction fgets() ne fonctionne pas sur HTC Desire
Je cours cette application sur 2 mobiles (Samsung Galaxy & Sony Xperia) et tout est OK.
Mais quand je cours l'application sur HTC Desire 300 et 500, l'application s'est arrêtée à la fonction fgets
!!
est la commande qui rendent l'application arrêtée:
line = fgets(buf, (int)sizeof(buf), modem);
où: {EDIT1}
static char buf[4 * 1024];
FILE *modem;
char *line="AT\r";
char q[4 * 1024 * 10];
modem = fopen("/dev/smd0", "r+b");
if (modem == NULL)
{
return (*env)->NewStringUTF(env, "2fopen() failed: /dev/smd0\n");
}
res = fputs(line, modem);
if (res < 0)
{
return (*env)->NewStringUTF(env, ("5failed to send '%s' to modem res = " + res,line));
}
line = fgets(buf, (int)sizeof(buf), modem);
EDIT2:
L'erreur logCat
est comme ça:
Tag: HTCBuildFlagAdpater
Text: Fail to get htc sku id by customization
Qu'est-ce que ce problème signifie? Y a-t-il une commande que je peux utiliser à la place?
Qu'est-ce que vous essayez de lire? Un matériel spécifique? – greenapps
Où ouvrez-vous le fichier? Est-ce sur le stockage externe? (En passant, vous ne devriez jamais coder ''// sdcard/"' jamais.) Êtes-vous sûr que la variable modem n'est pas NULL et initialisée? – Sipka
@greenapps Oui, j'essaie de lire quelques informations de bas niveau à partir du modem du mobile. –