zoukankan      html  css  js  c++  java
  • 使用广播实现桌面快捷方式的创建

    【项目说明】

      ①发送广播:开发者

      ②接收者:Android操作系统定义的接收者,开发者无需关系。

      ③由此,我们无需创建receiver,只需发送广播

    【项目步骤】

       ①再布局中添加一个按钮

      ②通过按钮的点击事件,对广播的intent的进行设置(具体代码和理解如下)

      ③发送广播,点击按钮查看效果

    【项目结构】

         

    【MainActivity】

     1 import android.Manifest;
     2 import android.content.Intent;
     3 import android.content.pm.PackageManager;
     4 import android.os.Parcelable;
     5 import android.support.v4.app.ActivityCompat;
     6 import android.support.v7.app.AppCompatActivity;
     7 import android.os.Bundle;
     8 import android.util.Log;
     9 import android.view.View;
    10 import android.widget.Button;
    11 
    12 public class MainActivity extends AppCompatActivity {
    13 
    14     private Button btn;
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.activity_main);
    19 
    20         btn = findViewById(R.id.btn);
    21         btn.setOnClickListener(new View.OnClickListener() {
    22             @Override
    23             public void onClick(View view) {
    24                 //创建快捷方式
    25                 Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
    26                 //action指定后,就决定了那个Receiver来执行这个消息
    27                 intent.putExtra("duplicate",true);
    28                 //可以存在多个快捷方式
    29                 intent.putExtra(Intent.EXTRA_SHORTCUT_NAME,"myapp");
    30                 //指定应用的名称
    31                 Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(),R.mipmap.ic_launcher);
    32                 //查找图标存到Parcelable类型
    33                 intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,icon);
    34                 //指定快捷方式的图标
    35                 Parcelable actionIntent = new Intent("com.xqz.shortcut");
    36                 intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,actionIntent);
    37                 sendBroadcast(intent);
    38                 Log.i("Tag", "onClick: ----create");
    39             }
    40         });
    41     }
    42 }

     

    【AndroidManifest】

    【提示】创建快捷方式要进行权限申请。虽然6.0之后需要进行动态权限的注册,但不是所有权限都需要动态申请,这个就不用

      

    【效果】点击按钮,查看桌面(上设置可以有多个快捷方式)

        

     

     

  • 相关阅读:
    Cocos2d-html5 笔记2: director
    Cocos2d html5 笔记 1: overview
    Device Pixel Ratio & Media Queries
    Viewport
    Viewport解决分辨率适配问题
    Ajax缓存解决办法
    capitalize()
    chr() 、ord()
    oct()
    eval()
  • 原文地址:https://www.cnblogs.com/xqz0618/p/shortcut_broadcast3.html
Copyright © 2011-2022 走看看