Je développe sous Android, j'utilise une instrumentation pour tester l'application du téléphone. Instrumentation est Android env pour tester les applications.
J'utilise pour cela la commande avec le nom du scénario de test. Je lance adb, puis j'entre adb Shell, puis j'écris dans Shell la commande am.
Je souhaite livrer un paramètre avec cette commande am. Je veux dire que je souhaite transmettre les paramètres au test lancé par la commande am.
Est-ce possible ??? S'il vous plaît aider?
vous pouvez passer un uri de données, un type mime et même des "extras" à la commande am .
am [début | instrument]
am start [-a <action>] [-d <donnée_uri>]
[-t <type_mime>] [-c <catégorie> [-c <catégorie>] ...]
[-e <extra_key> <extra_value>
[-e <extra_key> <extra_value> ...]
[-n <composant>] [-D] [<uri>]suis l'instrument [-e <nom_argument> <valeur_argument>] [-p <fichier_profil>] [-w] <composant>
Vous pouvez les transmettre en tant qu '"extras" puis obtenir les extras qui lui sont transmis.
Vous les passeriez comme ceci:
am start -a Android.intent.action.VIEW -c Android.intent.category.DEFAULT
-e foo bar -e bert ernie -n my.package.component.blah
puis dans votre code:
Bundle extras = this.getIntent ( ).getExtras ( );
if ( extras != null ) {
if ( extras.containsKey ( "foo" ) ) {
Log.d ( "FOO", extras.getString ( "foo" ) );
} else {
Log.d ( "FOO", "no foo here" );
}
if ( extras.containsKey ( "bert" ) ) {
Log.d ( "BERT", extras.getString ( "bert" ) );
} else {
Log.d ( "BERT", "Bert is all alone" );
}
} else {
this.setTitle ( "no extras found" );
}
Transmettez le paramètre dans: (par exemple, -e peerID SCH-I545)
adb -s 0915f98870e60701 Shell am instrument -w -e class /
com.example.Android.testing.uiautomator.BasicSample.sendInvite /
-e peerID SCH-I545 /
com.example.Android.testing.uiautomator.BasicSample.test/Android.sup /
port.test.runner.AndroidJUnitRunner
Dans la classe de test:
{
Bundle extras = InstrumentationRegistry.getArguments();
String peerID = null;
if ( extras != null ) {
if ( extras.containsKey ( "peerID" ) ) {
peerID = extras.getString("peerID");
System.out.println("PeerID: " + peerID);
} else {
System.out.println("No PeerID in extras");
}
} else {
System.out.println("No extras");
}
}
est exactement:
./adb Shell am start -a Android.intent.action.VIEW -c Android.intent.category.DEFAULT -e user_id 1 -n com.shortcut.activity/com.shortcut.activity.SelectCardActivity
com.shortcut.activity/com.shortcut.activity.SelectCardActivity -> Connectez-vous à l'application de démarrage de votre principale activité de classe. passera à votre application param user_id = 1 et sur la classe SelectCardActivity, vous l'obtiendrez comme suit:
Bundle installparams = this.getIntent ( ).getExtras ( );
Puisque vous travaillez déjà sur Android SDK, étant donné que vous connaissez l'emplacement du SDK sur votre système - , Accédez à l'emplacement du SDK sur le terminal (invite de commande) -> tapez adb Shell -> tapez am help
avec l'exemple http://whenpridefucks.blogspot.in/2011/12/Android-send-broadcast-intents-via-adb.html