【項目說明】 ①發送廣播:開發者 ②接收者: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之後需要進行動態許可權的註冊,但不是所有許可權都需要動態申請,這個就不用
【效果】點擊按鈕,查看桌面(上設置可以有多個快捷方式)