开发者

Unable to launch audio link from Android app

I'm trying to launch an intent from my application that will play audio from a streaming server. I've got a url for that stream and I'm using bit.ly to simplify the url to launch (I've tried without bit.ly and have the same results)

intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "http://bit.ly/gKltQE" ) );
intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); // i tried with and without this, no luck
startActivity( intent );

The browser starts, loads up the bit.ly link, redirects to the audio link then closes and returns to my app

12-15 14:27:58.559  1259  8370 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://bit.ly/gKltQE flg=0x10000000 cmp=com.android.browser/.BrowserActivity (has extras) }
12-15 14:14:23.903  1259  1383 I ActivityManager: Starting activity: Intent { act=android.in开发者_如何转开发tent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 cmp=com.android.browser/.BrowserActivity }
12-15 14:14:24.387  8848  8848 D webviewglue: nativeDestroy view: 0x3bb018
12-15 14:14:24.387  1259  1600 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 typ=audio/mpeg cmp=com.android.music/.StreamStarter }
12-15 14:14:24.387  1259  1929 I ActivityManager: moveTaskToBack: 12

When I launch the same bit.ly link in the browser manually, it works fine (launches the audio streaming app):

12-15 14:26:21.403  8848  8848 D SearchDialog: launching Intent { act=android.intent.action.VIEW dat=http://bit.ly/gKltQE flg=0x10000000 cmp=com.android.browser/.BrowserActivity (has extras) }
12-15 14:26:21.411  8848  8848 I SearchDialog: Starting (as ourselves) http://bit.ly/gKltQE#Intent;action=android.intent.action.VIEW;launchFlags=0x10000000;component=com.android.browser/.BrowserActivity;S.query=http%3A%2F%2Fbit.ly%2FgKltQE;S.user_query=bit;end
12-15 14:26:21.411  1259  1259 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://bit.ly/gKltQE flg=0x10000000 cmp=com.android.browser/.BrowserActivity (has extras) }12-15 14:26:21.879  1259  1267 V DeviceStorageMonitorService: freeMemory=6210887680
12-15 14:26:21.879  1259  1267 V DeviceStorageMonitorService: Threshold Percentage=10
12-15 14:26:21.879  1259  1267 V DeviceStorageMonitorService: mTotalMemory = 70264913
12-15 14:26:21.879  1259  1267 I DeviceStorageMonitorService: Posting Message again
12-15 14:26:21.997  8848  8864 D dalvikvm: GC_FOR_MALLOC freed 14790 objects / 467656 bytes in 85ms
12-15 14:26:22.192  1259  1436 D dalvikvm: GC_FOR_MALLOC freed 47823 objects / 2142584 bytes in 154ms
12-15 14:26:22.208  1259  1263 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 cmp=com.android.browser/.BrowserActivity }
12-15 14:26:22.676  1259  1259 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 typ=audio/mpeg cmp=com.android.music/.StreamStarter }
12-15 14:26:22.770  1259  8719 I AudioService:   Remote Control   registerMediaButtonEventReceiver() for ComponentInfo{com.android.music/com.android.music.MediaButtonIntentReceiver}
12-15 14:26:22.801  8217  8217 V MediaPlaybackService: reloadQueue end
12-15 14:26:22.809  8217  8217 V MediaPlaybackService: onCreate end
12-15 14:26:22.809  8217  8217 V MediaPlaybackService: onStartCommand end

I've tried fiddling with various intent.setFlags parameters but to no avail. Maybe a permissions issue? Or something to do with how I'm calling startActivity?


Not a permissions issue, it's just the BrowserActivity ending prematurely, maybe because there's no current tab. Best thing to do is to give an extra clue to the Intent resolver that it's not actually the Browser that should be handling the data:

intent.setType("audio/mpeg");

No other flags are needed... Sound Player (or your media player of choice) will now handle it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜