diff --git a/src/common/AudioStreamBuilder.cpp b/src/common/AudioStreamBuilder.cpp
index 777b573..f378a10 100644
--- a/src/common/AudioStreamBuilder.cpp
+++ b/src/common/AudioStreamBuilder.cpp
@@ -31,10 +31,10 @@
 }
 
 bool AudioStreamBuilder::isAAudioRecommended() {
-    const int ANDROID_8_1 = 27; // OC-MR1
     // See https://github.com/google/oboe/issues/40,
-    // AAudio may not be stable on Android 8.0, depending on how it is used.
-    return (getSdkVersion() >= ANDROID_8_1);
+    // AAudio may not be stable on Android O, depending on how it is used.
+    // To be safe, use AAUdio on O_MR1 and above.
+    return (getSdkVersion() >= __ANDROID_API_O_MR1__);
 }
 
 AudioStream *AudioStreamBuilder::build() {
diff --git a/src/opensles/AudioOutputStreamOpenSLES.cpp b/src/opensles/AudioOutputStreamOpenSLES.cpp
index e05962a..406632b 100644
--- a/src/opensles/AudioOutputStreamOpenSLES.cpp
+++ b/src/opensles/AudioOutputStreamOpenSLES.cpp
@@ -109,7 +109,7 @@
      * type, creating it from our original format.
      */
     SLAndroidDataFormat_PCM_EX format_pcm_ex;
-    if (__ANDROID_API__ >= __ANDROID_API_L__) {
+    if (getSdkVersion() >= __ANDROID_API_L__) {
         SLuint32 representation = OpenSLES_ConvertFormatToRepresentation(getFormat());
         // Fill in the format structure.
         format_pcm_ex = OpenSLES_createExtendedFormat(format_pcm, representation);
diff --git a/src/opensles/AudioStreamOpenSLES.cpp b/src/opensles/AudioStreamOpenSLES.cpp
index d81c8a4..0ab0265 100644
--- a/src/opensles/AudioStreamOpenSLES.cpp
+++ b/src/opensles/AudioStreamOpenSLES.cpp
@@ -60,7 +60,7 @@
     LOGI("AudioStreamOpenSLES::open(chans:%d, rate:%d)",
                         mChannelCount, mSampleRate);
 
-    if (__ANDROID_API__ < __ANDROID_API_L__ && mFormat == AudioFormat::Float){
+    if (getSdkVersion() < __ANDROID_API_L__ && mFormat == AudioFormat::Float){
         // TODO: Allow floating point format on API <21 using float->int16 converter
         return Result::ErrorInvalidFormat;
     }
@@ -74,8 +74,7 @@
     // API 21+: FLOAT
     // API <21: INT16
     if (mFormat == AudioFormat::Unspecified){
-        // TODO use runtime check
-        mFormat = (__ANDROID_API__ < __ANDROID_API_L__) ?
+        mFormat = (getSdkVersion() < __ANDROID_API_L__) ?
                   AudioFormat::I16 : AudioFormat::Float;
     }
 
