如何为不同的api版本制作活动启动器?

时间:2017-10-03 07:53:16

标签: android kiosk-mode

我正在为两个不同的版本构建一个自助服务终端应用程序:Android 6及之前版本。 当应用程序启动时,我有 StartActivity 和2个不同的APK lvl活动,启动它:

public class StartActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            startActivity(new Intent(this, MainActivityNew.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
        } else {
            startActivity(new Intent(this, MainActivityOld.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
        }

        finish();
    }
}

MainActivityNew MainActivityOld 必须是发射器(按下按钮回家时必须调用)

在Manifest文件中我写道:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.ng.lockergks">

    <application
        android:name="com.gks.locker.App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">

        <activity android:name="ru.gks.locker.ui.activity.StartActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity
            android:name=".MainActivityOld"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait"
            android:stateNotNeeded="true">
            <intent-filter>
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity
            android:name=".MainActivityNew"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait"
            android:stateNotNeeded="true">
            <intent-filter>
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity android:name=".AppListActivity"/>

    </application>

</manifest>

也就是说,当应用程序启动时,检查API的版本,并根据它来运行一种方式或另一种应该是启动器的活动。在这两个版本上它都不起作用。如何定义这种行为?

0 个答案:

没有答案