关闭

Android项目-快捷方式

标签: androidlauncher
94人阅读 评论(0) 收藏 举报
分类:

Android项目-快捷方式

如何在桌面上创建一个快捷方式呢?

桌面也是一个App,要想在桌面上创建一个快捷方式得靠他
在Android的系统应用程序Launcher2中提供了一个广播接收者:InstallShortcutReceiver
我们可以通过给他发送一个安装快捷方式的广播,来安装我们的App的快捷方式

/*
*创建一个可以快速打电话的快捷方式
*/

public class CallShortCutActivity extends Activity {

    @Override
    protected 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 {

    @Override
    protected 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>
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52532次
    • 积分:2304
    • 等级:
    • 排名:第16293名
    • 原创:179篇
    • 转载:27篇
    • 译文:0篇
    • 评论:3条
    最新评论