Как я могу перейти к указанному c активность в android приложении? - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть приложение, которое зависит от сканирования QR-кода для процесса оплаты, после открытия и наведения камеры на QR-код, извлечения его и перехода к следующему экрану, у меня уже есть метод для декодирования QR-кода, но проблема Я застрял в том, что не могу заставить приложение перейти к следующему экрану, я также подумал, что могу заставить драйвер appium вызывать следующий экран по нему s activity name but I don Не знаю, как это сделать, поэтому любые советы, пожалуйста

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Вы можете напрямую перейти на нужный экран с активностью этих страниц (как показано Splash screen в примере ниже). Вы можете запустить действие с помощью метода ниже.

public static void launchActivity(Activity activityName) 
{

        ((AndroidDriver<MobileElement>) driver).startActivity(activityName);
}

Как вы можете вызвать эту функцию

Предположим, у вас есть ниже пакет приложения и действия (например, но у вас есть использовать для вашего приложения)

String appPackage ="my.app.helloworld";

String appActivity = "my.app.helloworld".common.activity.SplashScreen";

launchActivity(new Activity(appPackage, appActivity));

Вам необходимо установить android:exported="true" в вашем файле AndroidManifest.xml для устранения ошибки java.lang.SecurityException

<activity
    android:name="com.dsquares.lucky/.screens.mainscreens.Wallet.WalletPayment.AddFundsActivity"
    android:label="wallet" 
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" >
        </action>
    </intent-filter>
</activity>
0 голосов
/ 03 февраля 2020

Вы должны создать намерение, при необходимости заполнить его данными, такими как данные, извлеченные из QR-кода, и затем вызвать startActivity.

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Bundle b = new Bundle();
b.putInt("key", 1); //Your id
intent.putExtras(b); //Put your id to your next Intent
startActivity(intent);
finish();

Я добавил int в пакет, но это может быть что угодно. который реализует Сериализуемый.

...