Generally, shortcuts are not automatically created after the android application is installed. Therefore, you can implement shortcuts when the application is started.
Permission required <uses-permission android: name = "com. android. launcher. permission. INSTALL_SHORTCUT"/>
The attribute of the activity corresponding to the shortcut to be clicked.
<Intent-filter>
<Action android: name = "android. intent. action. MAIN"/>
<Category android: name = "android. intent. category. LAUNCHER"/>
</Intent-filter>
<Intent-filter>
<Action android: name = "android. intent. action. CREATE_SHORTCUT"> </action>
</Intent-filter>
How can I determine whether a shortcut has been created? Because the shortcut information is saved in the favorites table of launcher. db of com. android. launcher, You can query this table to obtain it,
Permission required <uses-permission android: name = "com. android. launcher. permission. READ_SETTINGS"/>
The following is an example:
Import android. app. Activity;
Import android. content. ContentResolver;
Import android. content. Intent;
Import android. content. Intent. javascuticonresource;
Import android. database. Cursor;
Import android. graphics. BitmapFactory;
Import android.net. Uri;
Import android. OS. Bundle;
Public class AddShortCutActivity extends Activity {
/** Called when the activity is first created .*/
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
SetContentView (R. layout. main );
Boolean flag = IfaddShortCut (); // if it has been created, you do not need to create
If (flag = false ){
AddShortCut ();
}
}
Public void addShortCut (){
Intent shortcut = new Intent ("com. android. launcher. action. INSTALL_SHORTCUT ");
// Set attributes
Shortcut. putExtra (Intent. EXTRA_SHORTCUT_NAME, getResources (). getString (R. string. app_name ));
Export cuticonresource iconRes = Intent. Reset cuticonresource. fromContext (AddShortCutActivity. this, R. drawable. icon );
Shortcut. putExtra (Intent. EXTRA_SHORTCUT_ICON, iconRes );
// Whether repeated creation is allowed
Shortcut. putExtra ("duplicate", false );
Intent intent = new Intent (Intent. ACTION_MAIN );
Intent. setFlags (Intent. FLAG_ACTIVITY_RESET_TASK_IF_NEEDED );
Intent. addFlags (Intent. FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY );
Intent. addCategory (Intent. CATEGORY_LAUNCHER );
Intent. setClass (AddShortCutActivity. this, AddShortCutActivity. class );
// Set the Startup Program
System. out. println ("createIcon ");
Shortcut. putExtra (Intent. EXTRA_SHORTCUT_INTENT, intent );
AddShortCutActivity. this. sendBroadcast (shortcut );
}
Public boolean IfaddShortCut (){
Boolean isInstallShortcut = false;
Final ContentResolver cr = AddShortCutActivity. this. getContentResolver ();
// My 2.2 system is "com. android. launcher2.settings". For more information, see "com. android. launcher. settings"
Final String AUTHORITY = "com. android. launcher2.settings ";
Final Uri CONTENT_URI = Uri. parse ("content: //" +
AUTHORITY + "/favorites? Optional Y = true ");
Cursor c = cr. query (CONTENT_URI,
New String [] {"title", "iconResource "},
"Title =? ",
New String [] {getString (R. string. app_name)}, null); // XXX indicates the application name.
If (c! = Null & c. getCount ()> 0 ){
IsInstallShortcut = true;
System. out. println ("created ");
}
Return isInstallShortcut;
}
}
<? Xml version = "1.0" encoding = "UTF-8"?>
<Manifest xmlns: android = "http://schemas.android.com/apk/res/android"
Package = "com. shao. add"
Android: versionCode = "1"
Android: versionName = "1.0" type = "codeph" text = "/codeph">
<Uses-sdk android: minSdkVersion = "8"/>
<Application android: icon = "@ drawable/icon" android: label = "@ string/app_name">
<Activity android: name = ". AddShortCutActivity"
Android: label = "@ string/app_name">
<Intent-filter>
<Action android: name = "android. intent. action. MAIN"/>
<Category android: name = "android. intent. category. LAUNCHER"/>
</Intent-filter>
<Intent-filter>
<Action android: name = "android. intent. action. CREATE_SHORTCUT"> </action>
</Intent-filter>
</Activity>
</Application>
<Uses-permission android: name = "com. android. launcher. permission. READ_SETTINGS"/>
<Uses-permission android: name = "com. android. launcher. permission. INSTALL_SHORTCUT"/>
</Manifest>
From: ye of a person