我打算做一个只包含一个活动且没有任何应用图标的应用,我需要使用键盘打开此活动。比如说,每当您拨打12345
时,我的应用程序活动应该在没有应用程序图标的情况下打开。这在Android中可行吗?怎么样?
答案 0 :(得分:12)
只需从 AndroidManifest.xml
中的主要活动中删除 android.intent.category.LAUNCHER您无法通过拨打*#*#12345#*#*
来打开应用,因为为了做到这一点,您必须为接下来的操作编写接收器
<action android:name="android.provider.Telephony.SECRET_CODE" />
然后,您可以通过从该广播接收器触发Intent来打开您的应用。 但是在您的应用为* 系统应用 之前,Android不允许这样做。 *
以下是可以帮助您的代码 将Manifest中的活动更改为没有像
这样的意图过滤器<activity
android:name=".MyApp"
android:label="@string/title_activity_parent_trap"
android:theme="@android:style/Theme.Holo" >
</activity>
<receiver android:name=".MyApp$Launch" >
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data
android:host="(secret code)"
android:scheme="android_secret_code" />
</intent-filter>
</receiver>
完成后,创建一个类(我在我的主类中创建了Launch类,扩展了BroadCast Receiver),然后在onReceive类中启动了一个启动活动的意图。
然后在拨号器中键入*#*#(secret code)#*#*
将启动该应用。
答案 1 :(得分:4)
您必须在android:icon
的{{1}}元素中为application
属性指定可绘制资源。来自documentation:
必须将此属性设置为对包含图像的可绘制资源的引用(例如“@ drawable / icon”)。没有默认图标。
但指定的drawable不需要是一个图标。它可以在您的资源中定义为颜色:
AndroidManifest.xml
然后在<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="color_icon">#ff0000</drawable>
</resources>
:
AndroidManifest.xml
您将在应用程序启动板中看到类似的内容:
答案 2 :(得分:1)
只需从清单文件中删除“类别”标记
<activity
android:name="com.example.airplanemode.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category />
</intent-filter>
</activity>