Loading core/jni/AndroidRuntime.cpp +2 −0 Original line number Original line Diff line number Diff line Loading @@ -129,6 +129,7 @@ extern int register_android_database_CursorWindow(JNIEnv* env); extern int register_android_database_SQLiteConnection(JNIEnv* env); extern int register_android_database_SQLiteConnection(JNIEnv* env); extern int register_android_database_SQLiteGlobal(JNIEnv* env); extern int register_android_database_SQLiteGlobal(JNIEnv* env); extern int register_android_database_SQLiteDebug(JNIEnv* env); extern int register_android_database_SQLiteDebug(JNIEnv* env); extern int register_android_media_MediaMetrics(JNIEnv *env); extern int register_android_os_Debug(JNIEnv* env); extern int register_android_os_Debug(JNIEnv* env); extern int register_android_os_GraphicsEnvironment(JNIEnv* env); extern int register_android_os_GraphicsEnvironment(JNIEnv* env); extern int register_android_os_HidlSupport(JNIEnv* env); extern int register_android_os_HidlSupport(JNIEnv* env); Loading Loading @@ -1520,6 +1521,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_media_AudioProductStrategies), REG_JNI(register_android_media_AudioProductStrategies), REG_JNI(register_android_media_AudioVolumeGroups), REG_JNI(register_android_media_AudioVolumeGroups), REG_JNI(register_android_media_AudioVolumeGroupChangeHandler), REG_JNI(register_android_media_AudioVolumeGroupChangeHandler), REG_JNI(register_android_media_MediaMetrics), REG_JNI(register_android_media_MicrophoneInfo), REG_JNI(register_android_media_MicrophoneInfo), REG_JNI(register_android_media_RemoteDisplay), REG_JNI(register_android_media_RemoteDisplay), REG_JNI(register_android_media_ToneGenerator), REG_JNI(register_android_media_ToneGenerator), Loading media/java/android/media/MediaMetrics.java 0 → 100644 +634 −0 File added.Preview size limit exceeded, changes collapsed. Show changes media/jni/android_media_MediaMetricsJNI.cpp +37 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include "android_media_MediaMetricsJNI.h" #include "android_media_MediaMetricsJNI.h" #include "android_os_Parcel.h" #include "android_os_Parcel.h" #include "android_runtime/AndroidRuntime.h" // This source file is compiled and linked into: // This source file is compiled and linked into: // core/jni/ (libandroid_runtime.so) // core/jni/ (libandroid_runtime.so) Loading Loading @@ -124,6 +125,28 @@ jobject MediaMetricsJNI::writeMetricsToBundle( return bh.bundle; return bh.bundle; } } // Implementation of MediaMetrics.native_submit_bytebuffer(), // Delivers the byte buffer to the mediametrics service. static jint android_media_MediaMetrics_submit_bytebuffer( JNIEnv* env, jobject thiz, jobject byteBuffer, jint length) { const jbyte* buffer = reinterpret_cast<const jbyte*>(env->GetDirectBufferAddress(byteBuffer)); if (buffer == nullptr) { ALOGE("Error retrieving source of audio data to play, can't play"); return (jint)BAD_VALUE; } // TODO: directly record item to MediaMetrics service. mediametrics::Item item; if (item.readFromByteString((char *)buffer, length) != NO_ERROR) { ALOGW("%s: cannot read from byte string", __func__); return (jint)BAD_VALUE; } item.selfrecord(); return (jint)NO_ERROR; } // Helper function to convert a native PersistableBundle to a Java // Helper function to convert a native PersistableBundle to a Java // PersistableBundle. // PersistableBundle. jobject MediaMetricsJNI::nativeToJavaPersistableBundle(JNIEnv *env, jobject MediaMetricsJNI::nativeToJavaPersistableBundle(JNIEnv *env, Loading Loading @@ -191,5 +214,18 @@ jobject MediaMetricsJNI::nativeToJavaPersistableBundle(JNIEnv *env, return newBundle; return newBundle; } } }; // namespace android // ---------------------------------------------------------------------------- static constexpr JNINativeMethod gMethods[] = { {"native_submit_bytebuffer", "(Ljava/nio/ByteBuffer;I)I", (void *)android_media_MediaMetrics_submit_bytebuffer}, }; // Registers the native methods, called from core/jni/AndroidRuntime.cpp int register_android_media_MediaMetrics(JNIEnv *env) { return AndroidRuntime::registerNativeMethods( env, "android/media/MediaMetrics", gMethods, std::size(gMethods)); } }; // namespace android Loading
core/jni/AndroidRuntime.cpp +2 −0 Original line number Original line Diff line number Diff line Loading @@ -129,6 +129,7 @@ extern int register_android_database_CursorWindow(JNIEnv* env); extern int register_android_database_SQLiteConnection(JNIEnv* env); extern int register_android_database_SQLiteConnection(JNIEnv* env); extern int register_android_database_SQLiteGlobal(JNIEnv* env); extern int register_android_database_SQLiteGlobal(JNIEnv* env); extern int register_android_database_SQLiteDebug(JNIEnv* env); extern int register_android_database_SQLiteDebug(JNIEnv* env); extern int register_android_media_MediaMetrics(JNIEnv *env); extern int register_android_os_Debug(JNIEnv* env); extern int register_android_os_Debug(JNIEnv* env); extern int register_android_os_GraphicsEnvironment(JNIEnv* env); extern int register_android_os_GraphicsEnvironment(JNIEnv* env); extern int register_android_os_HidlSupport(JNIEnv* env); extern int register_android_os_HidlSupport(JNIEnv* env); Loading Loading @@ -1520,6 +1521,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_media_AudioProductStrategies), REG_JNI(register_android_media_AudioProductStrategies), REG_JNI(register_android_media_AudioVolumeGroups), REG_JNI(register_android_media_AudioVolumeGroups), REG_JNI(register_android_media_AudioVolumeGroupChangeHandler), REG_JNI(register_android_media_AudioVolumeGroupChangeHandler), REG_JNI(register_android_media_MediaMetrics), REG_JNI(register_android_media_MicrophoneInfo), REG_JNI(register_android_media_MicrophoneInfo), REG_JNI(register_android_media_RemoteDisplay), REG_JNI(register_android_media_RemoteDisplay), REG_JNI(register_android_media_ToneGenerator), REG_JNI(register_android_media_ToneGenerator), Loading
media/java/android/media/MediaMetrics.java 0 → 100644 +634 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
media/jni/android_media_MediaMetricsJNI.cpp +37 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include "android_media_MediaMetricsJNI.h" #include "android_media_MediaMetricsJNI.h" #include "android_os_Parcel.h" #include "android_os_Parcel.h" #include "android_runtime/AndroidRuntime.h" // This source file is compiled and linked into: // This source file is compiled and linked into: // core/jni/ (libandroid_runtime.so) // core/jni/ (libandroid_runtime.so) Loading Loading @@ -124,6 +125,28 @@ jobject MediaMetricsJNI::writeMetricsToBundle( return bh.bundle; return bh.bundle; } } // Implementation of MediaMetrics.native_submit_bytebuffer(), // Delivers the byte buffer to the mediametrics service. static jint android_media_MediaMetrics_submit_bytebuffer( JNIEnv* env, jobject thiz, jobject byteBuffer, jint length) { const jbyte* buffer = reinterpret_cast<const jbyte*>(env->GetDirectBufferAddress(byteBuffer)); if (buffer == nullptr) { ALOGE("Error retrieving source of audio data to play, can't play"); return (jint)BAD_VALUE; } // TODO: directly record item to MediaMetrics service. mediametrics::Item item; if (item.readFromByteString((char *)buffer, length) != NO_ERROR) { ALOGW("%s: cannot read from byte string", __func__); return (jint)BAD_VALUE; } item.selfrecord(); return (jint)NO_ERROR; } // Helper function to convert a native PersistableBundle to a Java // Helper function to convert a native PersistableBundle to a Java // PersistableBundle. // PersistableBundle. jobject MediaMetricsJNI::nativeToJavaPersistableBundle(JNIEnv *env, jobject MediaMetricsJNI::nativeToJavaPersistableBundle(JNIEnv *env, Loading Loading @@ -191,5 +214,18 @@ jobject MediaMetricsJNI::nativeToJavaPersistableBundle(JNIEnv *env, return newBundle; return newBundle; } } }; // namespace android // ---------------------------------------------------------------------------- static constexpr JNINativeMethod gMethods[] = { {"native_submit_bytebuffer", "(Ljava/nio/ByteBuffer;I)I", (void *)android_media_MediaMetrics_submit_bytebuffer}, }; // Registers the native methods, called from core/jni/AndroidRuntime.cpp int register_android_media_MediaMetrics(JNIEnv *env) { return AndroidRuntime::registerNativeMethods( env, "android/media/MediaMetrics", gMethods, std::size(gMethods)); } }; // namespace android