第一种,需要我们点击添加快捷方式后出现快捷方式:
AndroidManifest.xml:
<activity
android:name="com.example.test012.MainActivity"
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="com.example.test012.SimpleShutActivity">
<intent-filter >
<action android:name="android.intent.action.CREATE_SHORTCUT"/>
</intent-filter>
</activity>
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
SimpleShutActivity.java:
public class SimpleShutActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷方式Demo");//给快捷方式取名字
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher));//给快捷方式设置图标
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(this,MainActivity.class));//给快捷方式设置事件
setResult(RESULT_OK, intent);
finish();
}
}
}
运行后,在桌面添加快捷方式/窗口小部件,就可以看见我们制定的快捷图标与文字
第二种:采用程序自己创建生成快捷图标(广播方式):
AndroidManifest.xml:
需要加入权限:
<!-- 该权限为launcher自定义权限 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
加入方法:
public void createShutcut(){
Intent intent = new Intent();
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷Demo");<span style="font-family: Arial, Helvetica, sans-serif;">//给快捷方式取名字</span>
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher));//给快捷方式设置图标图片,若不设置会使用默认图标
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(this,MainActivity.class));//点击图标后的事件
sendBroadcast(intent);
}