2016-02-07 2 views
-1

Я разрабатываю приложение для Android и хочу выполнить определенную функцию, если приложение запущено из adb. Когда приложение запускается с устройства, эта функция не будет выполнена.Можно ли определить, запущено ли приложение из adb?

UPDATE Я использую следующий код

 if ((Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) != 0) { 
     PluginResult.Status status = PluginResult.Status.OK; 
     String result = ""; 
     result = "ok"; 
     return new PluginResult(status, result); 
     } 

     if ((Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) == 0) { 
     PluginResult.Status status = PluginResult.Status.ERROR; 
     String result = ""; 
     result = "error"; 
     return new PluginResult(status, result); 
     } 

, но я получаю всегда хорошо.

Где я ошибаюсь?

+0

Какова цель этого? Ничто не помешало бы пользователю установить флаг при запуске операции через 'adb'. –

ответ

0

App запуск с ОС:

  1. Первое, что если вы запустите приложение с иконкой ракет-носителей, Намерение включает в себя категорию «android.intent.category.LAUNCHER».
  2. Когда вы запускаете через значок запуска, устанавливается флаг Intent FLAG_ACTIVITY_RESET_TASK_IF_NEEDED (0x200000).

App Lauch от АБР:.

  1. АзБР случай оболочки не (ADB запуска оболочки утра -n com.package.name/com.package.name.ActivityName)
  2. В случае с оболочкой adb FLAG_ACTIVITY_RESET_TASK_IF_NEEDED нет.

Это позволит решить ваши question.all лучший

+0

Thx для вашего ответа, но как проверить, установлено ли это с помощью приложения phonegap ??? – kosbou

+0

К сожалению, это не сработало ... – kosbou

0

Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED является битовая и постоянным. Правильный способ проверить, установлен ли флаг:

if ((intent.getFlags() & Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) != 0) { 
... 
Смежные вопросы