Пользовательские аргументы / переменные передаются в эмулятор Android - PullRequest
3 голосов
/ 01 августа 2011

Я бы хотел передать аргумент эмулятору Android, запущенному через Eclipse.Этот аргумент является пользовательским и используется для определения, является ли адрес сервера для подключения либо «localhost», либо «myserverdomain.com».Это потому, что я не хочу иметь два двоичных файла или две версии одной и той же программы всякий раз, когда я запускаю программу в производственной или локальной тестовой среде.

В простом Java я могу использовать командуСтроковые аргументы по этому вопросу, и получить их в main(), или также использовать пользовательские переменные среды и получить их с помощью System.getProperty().

. Я не могу найти подобную функцию в Android.Вы знаете кого-нибудь, пожалуйста?

Ответы [ 2 ]

6 голосов
/ 11 июля 2012

Это возможно, хотя я не пытался сделать это через Eclipse.

Из командной строки вы можете использовать adb , чтобы запустить оболочку и запустить приложение с параметрами.

Например,

adb shell am start -a android.intent.action.MAIN -n org.caoilte.MyActivity -e SOME_KEY some_value -e SOME_OTHER_KEY some_other_value

начнет свою деятельность с дополнений, которые я могу извлечь из пакета следующим образом:

public class MyActivity extends Activity {

protected void onStart() {
    super.onStart();


    String someKey = null;
    String someOtherKey = null;

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        jsEnv = extras.getString("SOME_KEY");
        serverEnv = extras.getString("SOME_OTHER_KEY");
    }
}
1 голос
/ 01 августа 2011

Когда вы запускаете эмулятор для отладки вашего приложения, это все равно что устанавливать на устройство. Эмулятор - это не просто механизм запуска вашего приложения, это почти телефон. Создание параметра командной строки для передачи данных в ваше приложение будет немного сложным, поскольку в нем нет main(String[]), и потребуется несколько параметров, касающихся того, кому, когда и как вы хотите, чтобы параметры командной строки были доставлены.

Указание приложению, с каким сервером работать, можно выполнить несколькими разными способами. Сначала вы можете установить его как строковый ресурс . Во-вторых, вы можете определить, на каком устройстве вы работаете, с помощью Build.PRODUCT и других значений Build . Есть также несколько вариантов использования NetworkInterface . Кроме того, почему вы разрабатываете свое приложение, вы можете позволить пользователю выбрать AlertDialog или ListPreference с отладкой в качестве триггера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...