2013-04-19 67 views
17

Tôi đang viết một ứng dụng có thể thêm tiện ích con (chỉ các hộp văn bản) vào màn hình chính của điện thoại của người dùng khi người dùng yêu cầu ứng dụng của tôi làm như vậy. Làm thế nào tôi có thể làm một điều như vậy?Cách thêm tiện ích vào màn hình chính Android từ ứng dụng của tôi?

Tôi biết rằng tôi có thể thêm tiện ích ứng dụng nhưng cách thêm nhiều hơn?

+0

Bản sao có thể có của [Liên kết ứng dụngWidgets với AppWidgetHost - Android] (http://stackoverflow.com/questions/4258579/binding-appwidgets-to-appwidgethost-android) – rds

+0

@rds Có vẻ như đây thực sự là mục tiêu dupe cho cái còn lại. Câu trả lời này có nhiều câu trả lời hữu ích hơn và được xem nhiều gấp hai lần so với câu trả lời khác. Xem tại đây: http://meta.stackoverflow.com/questions/252929/which-question-is-the-better-reference-for-a-duplicate –

+0

Làm cách nào để thêm ** Tiện ích ứng dụng **? Tôi cần nó nhưng không biết làm thế nào. –

Trả lời

24

Không thể từ ứng dụng để đặt tiện ích trong màn hình chính. Chỉ màn hình chính mới có thể thêm các widget ứng dụng vào màn hình chính.

liên kết tương tự link1, link2, link3

Nhưng bạn có thể cung cấp cho người sử dụng để chọn widget từ widgetpicker.

Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK); 
    pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetID); 
    startActivityForResult(pickIntent, KEY_CODE); 
+0

Tôi đã đọc nó ở nhiều nơi mà nó có thể (ở đây trên SO) nhưng không ai giải thích làm thế nào. –

+0

vui lòng xem câu trả lời đã chỉnh sửa của tôi. .. cũng trong link2 Mark Murphy nói rằng không thể tự động đặt một widget ở nhà .... – stinepike

+0

Như tôi đã nói tôi không muốn tự động thêm tiện ích nhưng cho phép người dùng quyết định thêm chúng. –

2

Ứng dụng trình khởi chạy mặc định AFAIK không hỗ trợ tính năng này. Lý do là người dùng nên đặt mọi thứ trên màn hình chính. Cho phép đặt các tiện ích từ một ứng dụng sẽ mở cánh cửa cho các ứng dụng tới nhà của người dùng "spam" bằng các tiện ích "hữu ích" của họ.

+0

Tôi đang cố gắng viết nó theo cách tương tác của người dùng là cần thiết để đặt tiện ích con. –

3

Điều này đã được trả lời một thời gian dài trước đây, nhưng trong trường hợp bất cứ ai tình cờ khi câu hỏi này tôi nghĩ rằng tôi nên cung cấp một câu trả lời up-to-date.

Kể từ Android O (API 26), giờ đây bạn có thể ghim tiện ích vào trình khởi chạy của người dùng từ ứng dụng của mình!

Chỉ cần tạo tiện ích con trong tệp AndroidManifest của ứng dụng và sử dụng AppWidgetManager để yêu cầu tiện ích được ghim vào trình chạy. Lưu ý rằng tùy thuộc vào trình khởi chạy để hỗ trợ tính năng này, vì vậy bạn phải gọi phương thức isRequestPinAppWidgetSupported() của AppWidgetManager trước khi yêu cầu ghim.

Dưới đây là một số tài liệu từ Google mà đi vào chi tiết hơn: https://developer.android.com/preview/features/pinning-shortcuts-widgets.html#widgets

Hope this helps!

Các vấn đề liên quan