2010-09-25 33 views
7

Tôi muốn hoạt động của mình xuất hiện trong danh sách hoạt động (thư viện. Hình nền động, v.v.) mà bạn thấy khi bạn cố gắng chọn hình nền từ màn hình chính.Đặt hoạt động xuất hiện trong 'trình chọn hình nền'

Im giả định điều này được thực hiện với ý định nhưng không thể dường như tìm thấy một công trình. Người gần nhất tôi có thể tìm thấy là:

<action android:name="android.intent.action.ACTION_SET_WALLPAPER> 

nhưng điều đó không có tác dụng và dường như được sử dụng cho một thứ khác.

Trả lời

14

này cần được mục đích lọc bạn muốn:

<intent-filter> 
    <action android:name="android.intent.action.SET_WALLPAPER" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

Defined đây: (. Phạm trù DEFAULT là một cú pháp tiêu chuẩn cho intents) http://developer.android.com/reference/android/content/Intent.html#ACTION_SET_WALLPAPER

+0

Cảm ơn! Và vâng tôi đã không đưa danh mục DEFAULT vào tất cả mọi thứ ngay bây giờ. – Kman

0

Về cơ bản, bạn không thể đặt hoạt động làm hình nền. Thay vào đó, bạn phải tạo một Live Wallpaper và vẽ nội dung của mình trên SurfaceView bằng cách sử dụng Canvas. Bạn có thể tự tạo các khung nhìn để vẽ chúng trên canvas theo cách thủ công, nhưng đó là một chút khó khăn và trong hầu hết các trường hợp không phải là những gì bạn muốn.

+0

Rất tiếc, có thể tôi chưa đủ rõ ràng. Tôi không muốn đặt hoạt động làm hình nền. Tôi muốn ứng dụng/hoạt động của tôi là một mục được liệt kê trong hộp thoại 'chọn hình nền từ' bật lên khi bạn nhấp vào 'hình nền' từ màn hình chính. – Kman

1

Danh sách dưới 'chọn hình nền từ 'hộp thoại bật lên khi bạn nhấp vào' hình nền 'từ màn hình chính có ba mục nhập trên hầu hết các điện thoại (Tôi đã kiểm tra kho và HTC Sense):

  • sống hình nền
  • Gallery
  • Wallpapers (hoặc: HTC hình nền)

Khi tôi bấm 'nền' từ màn hình chính trên HTC Sense tôi nhận được:

09-26 20:17:58.901: INFO/ActivityManager(104): Starting activity: Intent { act=android.intent.action.SET_WALLPAPER_DIALOG cmp=com.htc.launcher/.WallpaperChooserDialog (has extras) } 
09-26 20:17:59.301: INFO/ActivityManager(104): Displayed activity com.htc.launcher/.WallpaperChooserDialog: 353 ms (total 353 ms) 

Khi về chứng khoán :

09-26 20:19:41.231: INFO/ActivityManager(86): Starting activity: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) } 
09-26 20:19:41.571: INFO/ActivityManager(86): Displayed activity android/com.android.internal.app.ChooserActivity: 294 ms (total 294 ms) 

Và whe n Tôi nhấp vào 'hình nền' khi đang có hàng:

09-26 20:19:51.101: INFO/ActivityManager(86): Starting activity: Intent { act=android.intent.action.SET_WALLPAPER flg=0x3000000 cmp=com.android.launcher/com.android.launcher2.WallpaperChooser } 
09-26 20:19:51.581: INFO/ActivityManager(86): Displayed activity com.android.launcher/com.android.launcher2.WallpaperChooser: 463 ms (total 463 ms) 

Bạn cần sử dụng android.intent.action.SET_WALLPAPER. Có thể bạn đã quên một số chi tiết triển khai khác như

<category android:name="android.intent.category.DEFAULT" /> 

để người chọn có thể chọn nó? Hãy xem mã nguồn của Photostream (http://code.google.com/p/apps-for-android/source/browse/trunk/#trunk/Photostream). Romain Guy đã làm việc.

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