Nook HD / HD+ Live Wallpaper Chooser Errors - Store Rejections

bloxa69

Active Member
Licensed User
Longtime User
Nook HD / HD+ Live Wallpaper Chooser Errors - Store Rejections:

I am hitting the wall :BangHead: trying to pass Barnes & Nobles (Nook) App review for my latest Live Wallpaper done with B4A. While I had no problems with that LWP on Google Play and Amazon, Nook HD QA team keeps sending it back. The reason: while it works fine on Nook Color and Tablet, on Nook HD/HD+ they get the popup saying it cannot find the activity to handle intent:
1. Begin the app on the NOOK HD and NOOK HD+.
2. Select the SETUP button.
Result: The following error message appears when selecting SETUP on the
NOOK HD and NOOK HD+: Error occurred / An error has occurred in the
sun:main_button1_click (java line:278)
android.content.ActivityNotFoundException: No Activity found to handle
Intent { act=android.service.wallpaper.CHOOSE_LIVE_WALLPAPER flg=0x20000
} Continue? No / Yes
Note: Pressing 'Yes' closes the error. Pressing 'No' exits the app. The
wallpaper does function correctly when setting it manually through the
system's settings.

This is the code I use to open Live Wallpaper chooser (similar code works fine on Amazon and Google Play:
B4X:
Sub Button1_Click
   Dim Intent1 As Intent

   Select Case Store
    Case "Amazon"
      Intent1.Initialize("android.service.wallpaper.LIVE_WALLPAPER_CHOOSER","") 
      StartActivity(Intent1)   
      
    Case "Nook"
      Try
'NOOK Color or Tablet - no problems
         Intent1.Initialize("com.bn.nook.CHANGE_WALLPAPER","") 
         StartActivity(Intent1)   
      Catch ex As Exception
         'NOOK HD+ cannot find activity for this intent and any other intent from B&N docs
     Intent1.Initialize("android.service.wallpaper.LIVE_WALLPAPER_CHOOSER","")  
         StartActivity(Intent1)   
         
      End Try

    Case Else
              Intent1.Initialize("android.service.wallpaper.LIVE_WALLPAPER_CHOOSER","") 
            StartActivity(Intent1)
End Select

End Sub

What's interesting, I have 3 wallpapers with identical code accepted by B&N, but this one just hits the wall. Any suggestions will be greatly appreciated :sign0163:.
As a side note: I've tried all B&N recommended Wallpaper API calls but they still send it back with the same error popup. Below are B&N suggestions I've tried to no avail:

'NOOK HD
import android.content.Intent;
Intent i = new Intent();
i.setAction( Intent.ACTION_SET_WALLPAPER );
startActivity( i );

'NOOK Color and Tablet - this works fine -
import android.content.Intent;
Intent i = new Intent();
i.setAction( "com.bn.nook.CHANGE_WALLPAPER" );
startActivity( i );
 

bloxa69

Active Member
Licensed User
Longtime User
Thanks Erel, that's what I was planning to do and just pop up a message on Nook HD: "123 LWP is installed. Blah blah blah..."
But it's kind of crippled. As per B&N store docs, Nook HD LWP Chooser is supposed to handle the intents I'm sending.
Is there any way to check programmatically what intents LWP chooser/manager is registered to handle on a specific device? They claim they have ICS 4.3 on their new Nooks, but my LWP setup App works just fine on a standard ICS tablet, so I am suspecting they have some kind of undocumented bug or something. Beats me.
 
Upvote 0

bloxa69

Active Member
Licensed User
Longtime User
Nook HD /HD+ Wallpaper Intents

Erel,
I am working on this problem with support techs from Barnes & Noble and they asked me if I'm positive I am using the exact intent provided in their documentation. I don't possess your powers, so I really cannot check the final code. Please confirm that B4A code:

B4X:
            Dim Intent1 As Intent
     Intent1.Initialize("android.service.wallpaper.SET_WALLPAPER ","")  
            StartActivity(Intent1)

translates to this native one:

B4X:
import android.content.Intent;
Intent i = new Intent();
i.setAction( Intent.ACTION_SET_WALLPAPER );
startActivity( i );
 
Upvote 0

bloxa69

Active Member
Licensed User
Longtime User
Never mind - i think I figured it out

Never mind - i think I figured it out. I think it should be

B4X:
            Dim Intent1 As Intent
 Intent1.Initialize("android.intent.action.SET_WALLPAPER","")  
StartActivity(Intent1)
 
Upvote 0

bloxa69

Active Member
Licensed User
Longtime User
WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER

Erel, I got the first part working in B&N Store (android.intent.action.SET_WALLPAPER). There is another way to do it on NOOK HD and that one will open the Live Wallpaper Chooser directly on NOOK HD or so they advise, not just the options menu where you get Gallery, Live Wallpapers, Wallpapers. Below is the code they gave me, though it's not documented on B&N website. Please advise on how to code it in B4A. My guess is Intent1.Initialize("android.service.wallpaper.ACTION_LIVE_WALLPAPER_CHOOSER","") but I'm not sure. I also googled it and found something like android.app.WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER.

B4X:
Intent i = new Intent();
i.setAction( WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER );
startActivity( i );
 
Upvote 0
Top