什么Android Manifest是强制性的?

时间:2016-05-15 22:29:55

标签: android android-activity android-manifest

我在Manifest中有以下活动:

android.intent.action

是否需要类别名称?关于 Notification_bar( first activity) ?我的意思是,我看到了很多教程,其中大多数都重复了关于建议名称的相同规则,以及我如何开始,我想知道我真正可以改变什么而不犯任何错误

2 个答案:

答案 0 :(得分:2)

  

是否需要类别名称?关于android.intent.action?

所有普通的Android SDK应用程序至少需要一个<activity> <intent-filter>结构,您的问题就在于此问题。那个<intent-filter>说&#34;嘿,主屏幕(以及任何其他表现得像发射器的东西),包括一个启动此活动的选项!&#34;。

如果您的清单中有两个或更多<activity>个元素,则所有这些元素都不需要<intent-filter>。大多数情况下,您并不希望想要所有人<intent-filter>。将它放在您的启动器活动上,并根据需要跳过(或更改)其他活动。

例如,在this sample app中,我定义了两个活动,但只有一个具有启动器<intent-filter>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.commonsware.android.exint"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="11"/>

    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name">
        <activity
            android:name="ExplicitIntentsDemoActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

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

</manifest>

答案 1 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.elite.youvaa">

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="23" />


    <action android:name="android.intent.action.PHONE_STATE" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera.flash"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.camera.autofocus"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.location"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.location.gps"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.location.network"
        android:required="false" />

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">


        <activity
            android:name=".Activity_Class.Splash_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".Activity_Class.Life_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Health_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Study_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Work_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Alarm_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar"
            android:windowSoftInputMode="stateHidden" />


        <activity
            android:name=".Activity_Class.CalendarView"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Alarm_Final_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.View_Pager_Doc"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Sub_Category_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Alarm_Screen_for_user_Review"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <activity
            android:name=".Activity_Class.Progress_Screen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />


        <!-- <receiver android:name=".Activity_Class.commonFunctionalityController.AlarmReceiver" />-->
        <receiver
            android:name=".Activity_Class.commonFunctionalityController.AlarmReceiver"
            android:enabled="true"
            android:process=":remote">
            <intent-filter>
                <action android:name="com.elite.youvaa" />
                <action android:name="android.intent.action.DATE_CHANGED" />
                <action android:name="android.intent.action.NOTIFY" />
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.TIME_SET" />
                <action android:name="android.intent.action.TIMEZONE_CHANGED" />
                <action android:name="android.intent.action.TIME_TICK" />
                <action android:name="android.intent.action.REBOOT" />
            </intent-filter>
        </receiver>
        <service android:name=".Activity_Class.commonFunctionalityController.MyAlarmService"
            android:enabled="true" />


    </application>

</manifest>