After checking with Akamai, the issue was solved and the problem was in the "/" character in the query string. the "/" should be replaced with "%2F"
Working URL :
http://xxxxx-i.akamaihd.net/hls/live/XXXX/event1/Playlist.m3u8?hdnea=st=1382080396~exp=1382685196~acl=%2F*~hmac=71794db8368c2498fea5fb62c381ce6e51a7ff4628c1225ddfe41411596b5d6e
Accroding to akamai here are some comments:
- Android 2.x / 3.x device will not support akamai Token authentication service
- There are many errors in the way Android 4.x handle url's of the playlists/segments. If a "/" character is used as part of the query string for requesting the master.m3u8 file (for example, because we are using token auth), and bitrate playlists and segment url's are defined using relative url's, Android 4.x generates wrong absolute url's. This is because Android 4.x, for getting base url, takes the master.m3u8 url from the first character to the last "/" character, even when this character is part of the query string
- Android 4.x HLS implementation is very sensitive with wrong timestamps. Streams that works for iPhone, doesn't work in Android 4.x due to timestamps misalignments (PTS/DTS of H.264/AAC packets)
Note that this solution also worked for :
- samsung smart TV player
- LG smart TV Player
- Western Digital player