Travaux Pratiques

tp2 : 3 activités

Thème : Composants Logiciels

Réaliser une application permettant d'appeler 3 composants Logiciels, dont deux prédéfinis : téléphonie, navigation.

 

Question 1 ) Appels d'applications existantes, déjà installées sur votre mobile/émulateur ,

Téléphoner et naviguer sur le web sont (sûrement) deux exemples d'applications prédéfinies, deux exemples de composants logiciels réutilisables.

    Ci-dessous, un extrait du support de cours

        Proposez une IHM et les appels de ces deux activités, les images des boutons sont extraites de www.iconfinder.com, vous pouvez aussi utiliser cet outil http://angrytools.com/android/ afin de personnalisez votre IHM. A cette question, un clic sur le deuxième bouton .

 

        Note : Afin que les images associées à vos ImageButton soient prises en compte, après leur téléchargement, placez les dans le dossier res/drawable (dossier qu'il faudra peut-être créer), le nom de l'image doit être en minuscule.

 

 

Note: l'activité pour téléphoner nécessite l'une des permissions ci-dessous
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
ou bien
<uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission>

 

de nouvelles contraintes liées aux permissions sont apparues avec Android 6.0 et la cible du SDK 23, de nouveaux tests sont imposés

https://developer.android.com/training/permissions/requesting.html   le plus simple est de se laisser guider par AndroidStudio qui installe le code

 

Question 2 ) Un nouveau composant : le  ComposantLogin

    Le nouveau composant Login doit être créé, celui-ci affiche à l'écran un dialogue permettant à l'utilisateur d'entrer un identifiant et un mot de passe. Ces deux paramètres sont retournés à l'activité cliente (cf.setResult et RESULT_CANCELED, RESULT_OK)

    Ce nouveau composant est créé dans un nouveau projet AndroidStudio, avec un nouveau nom de package et il doit être également possible de déclencher ce composant comme une application standard.

Question 2-1) Développer complètement ce nouveau composant logiciel Login,

Le source XML ci-dessous, décrivant l'interface du composant Login, est extrait de ce site

 

 

source: http://catchmayuri.blogspot.fr/2010/12/sample-android-login-application.html

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1">
     
<TableRow>
<TextView 
android:text="User Name: " 
android:id="@+id/TextView01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</TextView>

<EditText 
android:text="" 
android:id="@+id/txtUname" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content">
</EditText>
</TableRow>

<TableRow>
<TextView 
android:text="Password: " 
android:id="@+id/TextView02" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</TextView>

<EditText 
android:text="" 
android:id="@+id/txtPwd" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:password="true">
</EditText>
</TableRow>

<TableRow>
<Button
android:text="Cancel" 
android:id="@+id/btnCancel" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content">
</Button>

<Button
android:text="Login" 
android:id="@+id/btnLogin" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content">
</Button>
</TableRow>
</TableLayout>

Question 2-2) Choisissez une ACTION spécifique pour le composant Login,

 

Question 3 ) Proposez une autre possibilité de sélection de ce composant, avec une "Intent implicite"

Question 4 ) Supprimer la possibilité de déclencher ce composant comme une application standard, depuis le bureau.

Question 5 ) Complétez l'IHM de la question 1 avec l'appel de ce nouveau composant

Question 5-1) Déclenchez au clic sur le bouton l'appel du composant login de la question 2, l'application appelante se contente d'afficher les résultats fournis par le composant Login dans un Toast. De même que lors de l'annulation des entrées (Cancel), un Toast au sein de l'application le mentionne.

 

 

 

 
Un exemple de Toast ... 
source : http://developer.android.com/guide/topics/ui/notifiers/toasts.html
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();

Question 5-2) Testez l'autre possibilité de sélection de ce composant demandé à la question 3-2

 

Question 6 ) Installation d'une permission

Question 6-1) Ajoutez aux clients du composant Login, la nécessité impérieuse d'une permission pour utiliser ce composant

 <permission android:name="composant.permission.CALL_LOGIN"
	...

 

Question 6-2) Ajoutez un toast informant les clients n'ayant pas cette permission, de leur impossibilité d'exécuter ce composant.