Android项目-快捷方式
如何在桌面上创建一个快捷方式呢?
桌面也是一个App,要想在桌面上创建一个快捷方式得靠他
在Android的系统应用程序Launcher2中提供了一个广播接收者:InstallShortcutReceiver
我们可以通过给他发送一个安装快捷方式的广播,来安装我们的App的快捷方式
/*
*创建一个可以快速打电话的快捷方式
*/
public class CallShortCutActivity extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent intent = new Intent();intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); ////dowhtIntent 用于告诉InstallShortcutReceiver, 我们要创建的快捷方式的样子Intent dowhtIntent = new Intent();dowhtIntent.setAction(Intent.ACTION_CALL); //这个快捷方式用来打电话dowhtIntent.setData(Uri.parse("tel://110")); //电话号码intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "哈哈"); //快捷方式的名字intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)); //快捷方式的图标intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, dowhtIntent);//装载数据sendBroadcast(intent);}
}
/*
*创建我们的App的快捷方式
*/
public class StartActivity extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}private void createShortcut() {Intent intent = new Intent(); intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");//如果设置为true表示可以创建重复的快捷方式intent.putExtra("duplicate", false);intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "我的App");/***说明,我们这个快捷方式要启动应用* 这个地方不能使用显示意图* 必须使用隐式意图来启动我们的应用*/Intent shortcut_intent = new Intent(); shortcut_intent.setAction("start_my_app"); //我们应用的首页的<intent-filter/>, 具体配置在下面shortcut_intent.addCategory("android.intent.category.DEFAULT"); //得加上intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcut_intent); sendBroadcast(intent);}
}<activity android:name="com.itheima.mobileguard.activities.HomeActivity" ><intent-filter><!-- 这个名字可以随便取 --><action android:name=start_my_app" ></action><category android:name="android.intent.category.DEFAULT" ></category></intent-filter></activity>