2013-01-14 23 views
5

Tôi đang tạo hình nền Live của mình bằng cách làm theo hướng dẫn this. Nhưng tôi nhận được lỗi can not be resolved or is not a field vào hai dòng sauGặp lỗi tại WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT

trong khi cố gắng để đạt được điều này

Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); 
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, 
      new ComponentName(this, LiveWallService.class)); 

Và trình biên dịch cung cấp các suggessions:

WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER 
WallpaperManager.COMMAND_DROP 
WallpaperManager.COMMAND_SECONDARY_TAP 
WallpaperManager.COMMAND_TAP 
WallpaperManager.WALLPAPER_PREVIEW_META_DATA 

Là bất kỳ điều sai rồi...?

+1

Xin đừng lưu ý rằng '' ACTION_CHANGE_LIVE_WALLPAPER'' và '' EXTRA_LIVE_WALLPAPER_COMPONENT'' là API 16+ tính năng. – harism

+0

Ok, cảm ơn, nó đã được sửa ... – Arsalan

Trả lời

16

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER chỉ được thêm trong API cấp 16 (4.1.2). Có lẽ bạn đã đặt phiên bản SDK mục tiêu của mình thành một phiên bản thấp hơn 16?

Dưới cấp API 16, bạn chỉ có thể gửi người dùng đến màn hình chọn LWP tổng thể bằng cách sử dụng hành động cố ý WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER và yêu cầu anh ấy chọn hình nền của bạn từ đó. Bạn có thể thiết lập mã của bạn theo cách sau:

Intent i = new Intent(); 

if(Build.VERSION.SDK_INT >= 16) 
{ 
    i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); 
    i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(packageName, canonicalName)); 
} 
else 
{ 
    i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER); 
} 

// send intent 
+0

Ok, cảm ơn nó đã được sửa ... – Arsalan

+0

bạn có thể vui lòng cho tôi biết thay thế cho điều này ở mức API thấp hơn 16 không? – Arsalan

+0

Thật không may, chỉ có một tùy chọn bên dưới API Lvl 16 mà tôi biết, đó là yêu cầu người dùng chọn LWP của bạn từ danh sách trước khi gửi anh ta lên màn hình liệt kê tất cả các hình nền đã cài đặt với WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER. Tôi đã cập nhật câu trả lời của mình cho phù hợp. – Thrakbad

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