2013-06-01 61 views
18

Sự cố này phát sinh khi tôi đang phát triển một ứng dụng Android. Tôi nghĩ đến việc chia sẻ những kiến ​​thức tôi thu thập được trong quá trình phát triển của mình.Cách thêm lối tắt vào Màn hình chính trong android theo lập trình

+0

để các mods đó đánh dấu là trùng lặp: xin lưu ý rằng các câu trả lời trên trùng lặp của bạn không hoàn toàn giải quyết câu hỏi này. Do đó, OP đã quyết định [hỏi một câu hỏi mới] (http://stackoverflow.com/questions/ask), như đã thông báo. Bạn sẽ thấy rằng câu trả lời tự của mình chứa thông tin rất khác nhau cho câu trả lời được chấp nhận trên bản sao. Xin vui lòng xem xét cho mở lại. –

+0

Điều này có vẻ giống như một cách dễ dàng để đạt được danh tiếng khi ông gần như tái tạo một bài báo cũ hơn mà không cho tín dụng: http: //viralpatel.net/blogs/android-install-uninstall-shortcu t-example/ – igorsantos07

Trả lời

62

Android cung cấp cho chúng tôi lớp ý định com.android.launcher.action.INSTALL_SHORTCUT có thể được sử dụng để thêm phím tắt vào màn hình chính. Trong đoạn mã sau, chúng tôi tạo ra một phím tắt của hoạt động MainActivity với tên HelloWorldShortcut.

Trước tiên, chúng tôi cần thêm quyền INSTALL_SHORTCUT vào tệp kê khai android xml.

<uses-permission 
     android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

Phương thức addShortcut() tạo lối tắt mới trên Màn hình chính.

private void addShortcut() { 
    //Adding shortcut for MainActivity 
    //on Home screen 
    Intent shortcutIntent = new Intent(getApplicationContext(), 
      MainActivity.class); 

    shortcutIntent.setAction(Intent.ACTION_MAIN); 

    Intent addIntent = new Intent(); 
    addIntent 
      .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut"); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
      Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
        R.drawable.ic_launcher)); 

    addIntent 
      .setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    addIntent.putExtra("duplicate", false); //may it's already there so don't duplicate 
    getApplicationContext().sendBroadcast(addIntent); 
} 

Lưu ý cách chúng tôi tạo đối tượng shortcutTôi giữ hoạt động mục tiêu của chúng tôi. Đối tượng ý định này được thêm vào một mục đích khác như EXTRA_SHORTCUT_INTENT.

Cuối cùng, chúng tôi phát sóng ý định mới. Thao tác này thêm lối tắt có tên được đề cập là EXTRA_SHORTCUT_NAME và biểu tượng được xác định bởi EXTRA_SHORTCUT_ICON_RESOURCE.

Chúc mừng !!! Chanaka

Cũng đặt mã này để tránh nhiều phím tắt:

if(!getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).getBoolean(Utils.IS_ICON_CREATED, false)){ 
      addShortcut(); 
      getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).edit().putBoolean(Utils.IS_ICON_CREATED, true); 
     } 
+0

cảm ơn câu trả lời được điều tra tốt trên chức năng không có giấy tờ –

+4

Đừng làm việc cho tôi – David

+2

Tôi nghĩ rằng bây giờ cửa hàng chơi tự động thực hiện điều đó cho người dùng. (Có thể thay đổi trong cài đặt) để điều này sẽ chỉ tạo 2 biểu tượng trên màn hình. –