如何制作一个发射器

我一直在开发相当长的一段时间,现在我正在尝试制作一个应用程序来取代原来的家庭(例如HTC的感觉)。

当用户点击手机上的主页button时,我需要打开应用程序。

所以基本上这是一个家庭替代品。

有没有人知道如何去做这件事?

只需开发一个普通的应用程序,然后添加几行到应用程序的清单文件。

首先,您需要将以下属性添加到您的活动中:

android:launchMode="singleTask" 

然后将两个类别添加到意图filter:

  <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.HOME" /> 

结果可能看起来像这样:

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dummy.app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.dummy.app.MainActivity" android:launchMode="singleTask" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </activity> </application> </manifest> 

就这么简单!

您可以检出Android中使用的Launcher和Launcher2项目的源代码。

他们是Android团队的一个示例,如果您已经加载了Samples,则可以按照以下步骤导入主屏幕replace样本

文件>新build>其他> Android> Android示例项目> Android xx>主页>完成

但是,如果您没有样品,请通过下一步下载

Windows> Android SDK Manager>为SDKselect“SDK for sample”,您需要它> Install package> Accept License> Install

我发现这非常有用。 他一步一步地描述每一个程序。 你可能想要遵循这个http://www.taywils.me/2011/07/05/buildanapplicationlauncherwithandroid.html

下面是KitKat(也可能是棒棒糖)中使用的Launcher3 (AOSP启动器)的源代码:

https://android.googlesource.com/platform/packages/apps/Launcher3/+/master

如果您从AOSP中看到任何新的启动器,只需将urlreplace为新版本。

要编写自己的启动器应用程序,您必须像开发应用程序一样执行相同的操作。 只有新的东西是你必须添加一个新的类别标签。 这里是Manifest.xml的一小段代码来使一个活动成为启动器的活动。

 <activity android:name=".HomeActivity" android:label="Simple Launcher Home" android:launchMode="singleTask" android:stateNotNeeded="true" android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>