zoukankan      html  css  js  c++  java
  • Android之快捷方式一——通过应用程序创建快捷方式

    Android 快捷方式是桌面最基本的组件。它用于直接启动某一应用程序的某个组件。

    一般情况下,可以在Launcher的应用程序列表上,通过长按某一个应用程序的图标在左面上创建改该应用程序的快捷方式。另外,还可以通过两种方式在桌面上添加快捷方式:

    一:在应用程序中创建一个Intent,然后以Broadcast的形式通知Launcher创建一个快捷方式。

    二:为应用程序的组件注册某一个符合特定条件的IntentFilter,然后可以直接在Launcher的桌面添加启动该组件的快捷方式。

    下面模拟在应用程序中添加快捷方式

    main.xml布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
    ="vertical"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent">
    <Button android:id="@+id/createShortcut"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="wrap_content"
    android:layout_gravity
    ="center_horizontal"
    android:textSize
    ="20px"
    android:text
    ="创建快捷键"/>
    <Button android:id="@+id/exit"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="wrap_content"
    android:layout_gravity
    ="center_horizontal"
    android:textSize
    ="20px"
    android:text
    ="退出"/>
    </LinearLayout>

    清单文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ljq.action" android:versionCode="1"
    android:versionName
    ="1.0">
    <application android:icon="@drawable/icon"
    android:label
    ="@string/app_name">
    <activity android:name=".ShortCutAction"
    android:label
    ="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category
    android:name
    ="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    </application>
    <uses-sdk android:minSdkVersion="7" />
    <!-- 添加快捷键权限 -->
    <uses-permission
    android:name
    ="com.android.launcher.permission.INSTALL_SHORTCUT" />
    </manifest>

    ShortCutAction类

    package com.ljq.action;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Parcelable;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    /**
    * 通过应用程序创建快捷方式
    *
    *
    @author jiqinlin
    *
    */
    public class ShortCutAction extends Activity implements OnClickListener{
    private Button createShortcut=null; //创建快捷键按钮
    private Button exit=null;//退出系统

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    createShortcut
    =(Button)findViewById(R.id.createShortcut);
    exit
    =(Button)findViewById(R.id.exit);
    createShortcut.setOnClickListener(
    this);
    exit.setOnClickListener(
    this);
    }

    public void onClick(View v) {
    //Button btn=(Button)v;
    switch (v.getId()) {
    case R.id.createShortcut:
    //String title=getResources().getString(R.string.title);
    Intent addIntent=new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
    Parcelable icon
    =Intent.ShortcutIconResource.fromContext(this, R.drawable.png); //获取快捷键的图标
    Intent myIntent=new Intent(this, ShortCutAction.class);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
    "快捷方式");//快捷方式的标题
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);//快捷方式的图标
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, myIntent);//快捷方式的动作
    sendBroadcast(addIntent);//发送广播
    break;
    case R.id.exit:
    System.exit(
    0);
    break;
    }
    }
    }

    运行结果

  • 相关阅读:
    3名百度 ,京东,腾讯被辞退的高级Android工程师现在怎么了?30岁真的是“罪”吗
    Python 开发者在迁移到 Go 前需要知道的事情
    centos7 常用命令--查看当前用户的4种方法
    Centos7找不到ifconfig和netstat命令
    Centos 7 修改日期和时间的命令
    如何利用MobaX同时处理多台虚拟机输入相同命令如何利用MobaX同时处理多台虚拟机输入相同命令
    配置坑了我好久:Logback按天生成文件失效
    quartz系列文章
    SpringBoot使用多实例QUARTZ出现重复执行问题
    IDEA多个springboot项目启动修改端口
  • 原文地址:https://www.cnblogs.com/linjiqin/p/1967187.html
Copyright © 2011-2022 走看看