Had to take it one step further
I dont know if this will help anyone but i had the same issues with the speaker on my i896. I tried the loosening of the screw and it seemed to work for about a week, then i was back to tapping and pressing on the speaker, and would get another few days or week out of it. Ended up ordering a replacement on ebay from some place in hong kong. Figured for $3 delivered to my door was worth a shot.
While installing it found the ribbon cable that goes from the speaker into the phone circuit board i could not get the line to correctly line up, once the speaker was pushed into place it would pull out ever so slightly. There is a white line on the ribbon cable and a white line on the phone circuit board that need to be lined up, this shows it is pushed into the correct location. Measured the original and the replacement and the lengths were identical. It appears the cable is about 1mm too short, obviously a design flaw, or someone figured they would save some money on the cable, what are we talking here 1/1000 of a penny? What I did was pull the ribbon cable slightly from the speaker assembly. (I am guessing it has a similar connection inside the speaker that the ribbon cable plugs into, but cant say for sure since its a sealed unit). By doing that I was able to get that ever so slight extension for the ribbon cable to plug into the phone circuit board and stay where it is supposed to when you push the speaker assembly into place.
I put the tape back on to keep it from crawling out, from vibration or any temperature change contractions/expansions. As a precaution i left the screw that holds it loose when i installed it. From what i can see the way it sits in there it would be impossible for it to fall out with or without a screw.
Its been in for 4 weeks now and appears to be running properly 100%.
I did not attempt this with the original speaker assembly, but figured if i screwed up the new one i could temporarily re-install the original at the very least and keep tapping and wacking it to make it work.