¿Cómo puedo entregar parámetros a una función de prueba, que se inició con el comando adb shell am Instrumentation?

Estoy desarrollando en Android, estoy usando instrumentación para probar la aplicación del teléfono. La instrumentación es env de Android para probar aplicaciones.

Para eso uso el comando am con el nombre del caso de prueba. Ejecuto adb, luego ingreso 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 lanzada por el comando am.

Es posible ??? Por favor ayuda ?

puede pasar un uri de datos, tipo mime e incluso “extras” al comando am .

soy [inicio | instrumento]

am start [-a ] [-d ]
[-t ] [-c [-c ] …]
[-e
[-e …]
[-n ] [-D] []

am instrument [-e ] [-p ] [-w]

Puede pasarlos como “extras” y luego obtener los extras que se le pasan.

Usted los pasaría así:

am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -e foo bar -e bert ernie -n my.package.component.blah 

luego 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" ); } 

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 la aplicación principal de inicio de actividades de la clase. pasará a su aplicación param user_id = 1 y en la clase SelectCardActivity lo obtendrá como sigue:

  Bundle installparams = this.getIntent ( ).getExtras ( ); 

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 la 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