开发者

Application without app icon

I plan to do an app which contains only one activity and without any app icon, where I need to open this activity by using the keypad. Say for example, whenever you dial 12345 my application activity shoul开发者_高级运维d open without an app icon. Is this possible in Android? How?


Just remove android.intent.category.LAUNCHER from your main Activity in AndroidManifest.xml

And you cannot open app by dialing *#*#12345#*#* because in order to do that you have to write a receiver for following action

<action android:name="android.provider.Telephony.SECRET_CODE" />

Then you can open your app by firing an Intent from that broadcast receiver. But android does not permit this until your app is *System app.*

Following is the code that will help you Change activity in Manifest to have no intent filters like

<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>

Once done, make a class (I made the Launch class in my main class, extending BroadCast Receiver), then in the onReceive class, fire an intent to launch the activity.

Then typing *#*#(secret code)#*#* into the dialer will launch the app.


You must specify drawable resource for android:icon attribute in application element of AndroidManifest.xml. From documentation:

This attribute must be set as a reference to a drawable resource containing the image (for example "@drawable/icon"). There is no default icon.


But the drawable specified doesn't need to be an icon. It can be defined as color in your resources:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <drawable name="color_icon">#ff0000</drawable>
</resources>

And then specify it in your AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>  
    <application android:icon="@drawable/color_icon" ...>
       ...
    </application>  
</manifest> 

And you'll see something like this in your application launchpad:

Application without app icon


just Remove "category" Tag from manifest file

  <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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜