webrtc/talk/examples/android
fischman@webrtc.org d1fe6b728e AppRTCDemo(android): fix a couple of SDP-related regressions.
- r5834 made it so that empty fields are a fatal SDP parsing error, exposing
  opportunities for improvement in the preferISAC; changed split/join to use
  \r\n instead of \n and now omitting the trailing space on the m=audio line
  that triggered the new failure.
- DTLS requires a different role for each endpoint so conflicts with loopback
  calling.  apprtc.py suppresses DTLS for that reason in loopback calls, so the
  android demo app now only enables DTLS by default if it is not suppressed by a
  constraint (matching Chrome).

BUG=3164,3165,2507
R=mallinath@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11229004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5847 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-04 21:40:46 +00:00
..
assets AppRTCDemo: replace the use of query-string parameters for pre-JB devices. 2013-07-29 19:07:33 +00:00
jni Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
res Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
src/org/appspot/apprtc AppRTCDemo(android): fix a couple of SDP-related regressions. 2014-04-04 21:40:46 +00:00
AndroidManifest.xml PeerConnection(java): use MediaCodec for HW-accelerated video encode where available. 2014-02-13 03:56:14 +00:00
ant.properties Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
build.xml Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
project.properties Revert 5274 "Update talk to 58113193 together with https://webrt..." 2013-12-12 22:54:25 +00:00
README AppRTCDemo(android): clarified README on how to launch app using adb. 2014-02-14 17:55:13 +00:00

This directory contains an example Android client for http://apprtc.appspot.com 

Prerequisites:
- Make sure gclient is checking out tools necessary to target Android: your
  .gclient file should contain a line like:
  target_os = ['android', 'unix']
  Make sure to re-run gclient sync after adding this to download the tools.
- Env vars need to be set up to target Android; easiest way to do this is to run
  (from the libjingle trunk directory):
  . ./build/android/envsetup.sh
  Note that this clobbers any previously-set $GYP_DEFINES so it must be done
  before the next item.
- Set up webrtc-related GYP variables:
  export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_java=1 $GYP_DEFINES"
  export JAVA_HOME=</path/to/JDK>
  export PATH=$JAVA_HOME/bin:$PATH
  To cause WEBRTC_LOGGING to emit to Android's logcat, add enable_tracing=1 to
  the $GYP_DEFINES above.
- When targeting both desktop & android, make sure to use a different output_dir
  value in $GYP_GENERATOR_FLAGS or you'll likely end up with mismatched ARM &
  x86 output artifacts.  If you use an output_dir other than out/ make sure to
  modify the command-lines below appropriately.
- Finally, run "gclient runhooks" to generate Android-targeting .ninja files.

Example of building & using the app:

cd <path/to/libjingle>/trunk
ninja -C out/Debug AppRTCDemo
adb install -r out/Debug/AppRTCDemo-debug.apk

In desktop chrome, navigate to http://apprtc.appspot.com and note the r=<NNN> room 
this redirects to.  Launch AppRTC on the device and enter the same <NNN> into
the dialog box.

Alternatively, replace the <NNN> from the desktop chrome into the following
command:
adb shell am start -n org.appspot.apprtc/.AppRTCDemoActivity -a android.intent.action.VIEW -d '"https://apprtc.appspot.com/?r=<NNN>"'
This should result in the app launching on Android and connecting to the apprtc
page displayed in the desktop browser.

Yet another way to is to send the apprtc room URL to the Android device (e.g. using
https://chrome.google.com/webstore/detail/google-chrome-to-phone-ex/oadboiipflhobonjjffjbfekfjcgkhco)
and choose to open the URL with the AppRTCDemo app.