android - instalar - ¿Cómo puedo entregar parámetros a una función de prueba, que se inició con el comando adb shell am Instrumentation?
fastboot (4)
Como ya está trabajando en Android sdk, dado que conoce la ubicación de sdk en su sistema, vaya a la ubicación de sdk en el terminal (símbolo del sistema) -> escriba adb shell -> escriba am help
con el ejemplo http://whenpridefucks.blogspot.in/2011/12/android-send-broadcast-intents-via-adb.html
Estoy desarrollando en Android, estoy usando instrumentación para probar la aplicación del teléfono. La instrumentación es Android env para probar aplicaciones.
Para eso uso el comando am con el nombre del caso de prueba. Ejecuto adb, luego entro en adb shell, luego escribo en shell el comando am.
Deseo entregar un parámetro junto con este comando am. Quiero decir que deseo entregar parámetros a la prueba iniciada por el comando am.
Es posible ??? Por favor ayuda ?
Pase el parámetro en: (por ejemplo, -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
En la clase de prueba:
{
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");
}
}
exactamente es
./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 -> uir a su aplicación de inicio de actividad de clase principal. pasará a su aplicación param user_id = 1 y en la clase SelectCardActivity lo obtendrá de la siguiente manera:
Bundle installparams = this.getIntent ( ).getExtras ( );
puede pasar un uri de datos, tipo mime e incluso "extras" al comando am .
soy [inicio | instrumento]
soy inicio [-a <acción>] [-d <datos_datos>]
[-t <tipo_mime>] [-c <category> [-c <category>] ...]
[-e <extra_key> <extra_value>
[-e <extra_key> <extra_value> ...]
[-n <componente>] [-D] [<uri>]am instrument [-e <arg_name> <arg_value>] [-p <prof_file>] [-w] <component>
Puede pasarlos como "extras" y luego obtener los extras que se le pasan.
Los pasarías así:
am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT
-e foo bar -e bert ernie -n my.package.component.blah
entonces en tu código:
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" );
}