# [xCode - Obj-C/C++] Application SMS



## Ich' (18 Mars 2011)

Bonjour à tous,

Alors comme dit brièvement dans le titre, je cherche à faire une application sous mac/iPhone.
Alors je sais qu'il existe des applications proposant ce que je veux faire (j'ai pas trop trop fouillé mais de celles que je connais ça ne fait pas exactement ce que je VEUX sinon peut-être des payantes sur lesquelles je ne suis pas tombé encore).


*Mon Projet
---------------------*
Je souhaite en fait réaliser une application permettant de voir les messages (sms dans un premier temps puis pourquoi pas les MMS par la suite) reçus sur l'iPhone sur l'application créée sur Mac et de pouvoir aussi en émettre.

Alors en fait pour cela j'ai je pense deux solutions possibles :



*Solution 1* : *Une seule* application - sur le *Mac* - qui va _détecter_ les appareils branchés par USB et plus particulièrement les iPhones. A partir de là, on peut commencer à communiquer avec le périphérique et récupérer puis envoyer les informations voulues.
*Solution 2* : *Deux* applications. Une sur le *Mac* et l'autre sur l'*iPhone*. Il faudrait en fait activer les deux pour qu'elle puissent correspondre via le _wifi_ par exemple. Et là de même on peut commencer à traiter.



*Mockup'
---------------------*



*---------------------*



*Mes Raisons
---------------------*
Bah c'est pas bien compliqué.
Tout simplement parce que je correspond beaucoup par messages texte et mails travaillant dans l'informatique. Et j'en ai simplement assez de switch entre l'iPhone et le Mac. Et puis à avoir une application, autant la faire, je me suis dit que ça me ferait un bon projet.

*Mes Questions
---------------------*


Alors je voudrais savoir déjà quelle est pour vous la meilleure approche à adopter ?
Suivant la méthode, connaissez vous une librairie qui permet de détecter/communiquer avec les périphériques USB ou iPhone à partir d'un Mac ? _(j'ai essayé mais sans vraiment comprendre comment gérer libusb si vous pensez que ça suffit et connaissez aidez-moi s'il vous plaît)_
Par quel moyen vais-je pouvoir récupérer les SMS/MMS reçus et en envoyer des nouveaux ? Ou simplement comment récupérer des informations présentes sur l'iPhone (puisque les SMS sont bien stockés quelque part en mémoire) ?
Que langage utiliser (bon Objective-C si je fais une API iPhone) mais sur le Mac ? Objective-C ? C++ ?


_Merci à toutes les personnes qui m'auront lu et surtout à celles qui sapprêtent à me répondre._


----------



## Rez2a (18 Mars 2011)

Là comme ça, à moins de travailler sur un iPhone jailbroken, ça m'a l'air impossible.
Le max que j'aie réussi à faire sur iPhone au niveau des SMS, c'est de pouvoir pré-remplir un champ d'écriture SMS vers un/des numéros définis ; en clair, ça te rentre le(s) destinataire(s), ça te remplit le contenu du message, mais ça t'affiche la vue standard d'envoi de SMS et il faut l'envoyer manuellement depuis l'iPhone.
Je me suis pas penché plus que ça sur le sujet, mais je suis quasiment sûr que tu ne peux pas accéder aux SMS stockés sur le téléphone, pour des raisons de sécurité... ça serait inquiétant que n'importe quelle appli puisse accéder à ce type de données.

Après, si tu as vraiment envie de chercher un profondeur, ça doit être possible en jailbreakant mais va falloir mettre les mains dans la merde.


----------



## Céroce (18 Mars 2011)

Je confirme. On ne peut pas récupérer les SMS de l'iPhone pour des raisons de confidentialité.


----------



## Ich' (18 Mars 2011)

Ok merci à tous les deux.
Ralala ces soucis de confidentialité.... ^^
M'enfin je crois que je suis foutu. Oui j'imagine avec un iPhone jailbreaké ça doit pouvoir se trouver mais bon tu me vois mettre sur mon API (ne fonctionne que sur un iPhone jailbreaké ) mouai moyen....

Sinon Rez2a tu as dis quelque chose d'intéressant. Tu disais avoir pré-rempli les champs sms (bon du coup l'application existe déjà je l'utilise mais bon ça me fera un petit projet pour commencer). Comment tu t'es débrouillé ?


----------



## Rez2a (18 Mars 2011)

Regarde du côté du framework MessageUI, qui sert à utiliser l'envoi de mails et de SMS.

Sinon le code est pas compliqué à mettre en place :


if([MFMessageComposeViewController canSendText])
	{
                MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
		controller.body = @"Texte";
		controller.recipients = [NSArray arrayWithObjects"0102030405", @"0607080910", nil];
		controller.messageComposeDelegate = self;
		[self presentModalViewController:controller animated:YES];
                [controller release];
	}


----------



## Ich' (18 Mars 2011)

Alors merci, je suis allé voir de ce côté là.
J'ai bien linké le framewok.

Par contre après avoir mis ce code : 

```
#import <Foundation/Foundation.h>
#import <MessageUI/MessageUI.h>

@interface smsSender : MFMailComposeViewController   {
    
}
```
Je ne peux pas faire en sorte que ma classe smsSender hérite de MFMessage.....
Pourtant le .h existe dans MessageUI.h j'ai vérifié.
Je ne peux même pas créer un objet MFMessage.. mais par contre MFMail.. je peux !

Et puis quand je compile en incluant cet import bah il plante parce que dans le MF*.h il y a cette ligne qui va pas : "#import <UIKit/UIKit.h>"

Une idée d'où ça vient ?


----------



## Rez2a (19 Mars 2011)

Pourquoi veux-tu faire hériter ta classe de MFMessageComposeVC ?
Je te conseille de jeter un oeil au mécanisme de catégories, ici : http://macdevelopertips.com/objective-c/objective-c-categories.html
Ça te permet d'ajouter des méthodes à des classes dont tu ne disposes pas du code source, ça suffira peut-être à faire ce que tu veux... cela dit, si tu fais ça dans le but d'essayer de contourner les systèmes de protection mis en place par Apple, commence à préparer un gros chèque pour les équipes de validation de l'App Store.


----------



## Ich' (19 Mars 2011)

Non non mais je ne souhaite pas contourner le soucis d'Apple.
Jusque là je souhaite faire un peu ce que tu as fait, pré-remplir les zones de texte (numéro + message).

J'ai un soucis aussi en fait pour linker réellement d'où elle est.
En fait je bosse sous Xcode 4 et la librairie MessageUI est là : "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Lib*rary/Frameworks/MessageUI.framework". Et j'arrive pas à la linker à mon projet....?


----------



## Rez2a (19 Mars 2011)

Ok mais dans ce cas tu n'as pas besoin de faire hériter ta classe de MFMessageComposeVC, déclare simplement smsSender comme une sous-classe de UIViewController, et ensuite tu n'auras qu'à instancer un objet de MFMessageComposeViewController.

[Edit]
Je remarque un truc, tu bosses avec le SDK 3.1 ?
Je crois (sans certitude) que l'envoi de SMS in-app a été implémenté avec le SDK 4.0.


----------



## Ich' (19 Mars 2011)

J'ai tous les SDKs par contre comment tu vois lequel tu utilise au niveau du prog ?
Ca me perturbe encore un peu Xcode 4 ^^
Je vais tester UIViewController là


----------



## Ich' (20 Mars 2011)

Une petite aide ? Une idée ?
Thx


----------



## redchou (23 Mars 2011)

Je sais pas, mais il me semble que certain opérateur propose de gérer ses msg avec une interface web...
Avec la possibilité de voir la messagerie vocale visuelle, les textos, les mms... Et aussi d'en envoyer...
Et aussi, la possibilité, de voir les sms reçu et envoyé...
Ptet plus simple pour recup le fil de la discution...
Je pense que ce serait mieux de passer par la.. Sinon tu n'auras pas de support avec les Framework officiels et la durdur...


----------



## Ich' (23 Mars 2011)

redchou a dit:


> Je sais pas, mais il me semble que certain opérateur propose de gérer ses msg avec une interface web...
> Avec la possibilité de voir la messagerie vocale visuelle, les textos, les mms... Et aussi d'en envoyer...
> Et aussi, la possibilité, de voir les sms reçu et envoyé...
> Ptet plus simple pour recup le fil de la discution...
> Je pense que ce serait mieux de passer par la.. Sinon tu n'auras pas de support avec les Framework officiels et la durdur...



Très intéressant ce que tu me dis là. Et tu as entendu ça d'où?
Parce que ça serait la solution ultime pour moi. Et oui il est évident que les messages sont stockés quelque part 
Donc c'est vrai que si il y a un accès mais à mon avis là ça devient d'une grande complexité parce qu'il faut surement un accord avec les différents opérateurs non pour que l'appli ait accès aux serveur de messages du client ?


----------



## redchou (23 Mars 2011)

C'est un pote qui m'avait parlé de ca sur le portail sfr.
Il m'avait qu'il pouvait faire ca en plus de personnalisé la messagerie selon le correspondant...
Si je peux trouver plus d'infos la dessus je t'en parle.
Mais passer un accord avec un opérateur pour acceder au serveur sms, etc... Ca c'est trop chaud je pense, ils voudront jamais... 
Par contre utilisé leur interface web pour faire ton appli, "suffira" de parser les pages de leur portail dans le pire des cas pour l'utiliser comme interface avec ton appli... Ce n'est pas non plus super simple...

---------- Nouveau message ajouté à 23h45 ---------- Le message précédent a été envoyé à 23h41 ----------

Genre chez orange, quand je me connecte sur le portail, dans l'onglet SMS/MMS J'ai:


> BIENVENUE SUR LE SERVICE SMS/MMS!
> Profitez des nombreux avantages du service avec :
> l'envoi et la consultation de vos SMS et MMS
> la personnalisation de vos MMS
> ...


----------



## Ich' (23 Mars 2011)

Orange mobile ?


----------



## redchou (23 Mars 2011)

oui mais dans les conditions d'utilisation je crois comprendre qu'il te facture les sms 0,10&#8364; (même si tu as un forfait illimité SMS/MMS), et que si le mec n'est pas chez orange, il ne reçoit pas le sms avec ton numéro mais un numéro de service...
Donc l'idéal serait quand même d'utiliser des librairie non-officielle sur un iphone Jailbreaké et de l'utiliser pour l'envoi des SMS de l'application...


----------



## Ich' (23 Mars 2011)

redchou a dit:


> oui mais dans les conditions d'utilisation je crois comprendre qu'il te facture les sms 0,10 (même si tu as un forfait illimité SMS/MMS), et que si le mec n'est pas chez orange, il ne reçoit pas le sms avec ton numéro mais un numéro de service...
> Donc l'idéal serait quand même d'utiliser des librairie non-officielle sur un iphone Jailbreaké et de l'utiliser pour l'envoi des SMS de l'application...


Bah juste l'envoi ça peut se faire avec des librairies officielles.
Mais de voir les messages reçus et autres oui il faut un jailbreak préalable je pense.

Ouai non le coût supplémentaire c'est pas bon..


----------

