使用广播实现桌面快捷方式的创建
程序员文章站
2022-04-11 08:26:12
【项目说明】 ①发送广播:开发者 ②接收者:Android操作系统定义的接收者,开发者无需关系。 ③由此,我们无需创建receiver,只需发送广播 【项目步骤】 ①再布局中添加一个按钮 ②通过按钮的点击事件,对广播的intent的进行设置(具体代码和理解如下) ③发送广播,点击按钮查看效果 【项目 ......
【项目说明】
①发送广播:开发者
②接收者: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之后需要进行动态权限的注册,但不是所有权限都需要动态申请,这个就不用
【效果】点击按钮,查看桌面(上设置可以有多个快捷方式)