| 108 | } |
| 109 | |
| 110 | void ChangeVolume(bool up) { |
| 111 | |
| 112 | // Attaches the current thread to the JVM. |
| 113 | jint lResult; |
| 114 | jint lFlags = 0; |
| 115 | JavaVM* lJavaVM = platState.engine->app->activity->vm; |
| 116 | JNIEnv* lJNIEnv = platState.engine->app->activity->env; |
| 117 | |
| 118 | JavaVMAttachArgs lJavaVMAttachArgs; |
| 119 | lJavaVMAttachArgs.version = JNI_VERSION_1_6; |
| 120 | lJavaVMAttachArgs.name = "NativeThread"; |
| 121 | lJavaVMAttachArgs.group = NULL; |
| 122 | |
| 123 | lResult=lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs); |
| 124 | if (lResult == JNI_ERR) { |
| 125 | return; |
| 126 | } |
| 127 | |
| 128 | // Retrieves NativeActivity. |
| 129 | jobject lNativeActivity = platState.engine->app->activity->clazz; |
| 130 | jclass ClassNativeActivity = lJNIEnv->GetObjectClass(lNativeActivity); |
| 131 | |
| 132 | // Retrieves Context.AUDIO_SERVICE. |
| 133 | jclass ClassContext = lJNIEnv->FindClass("android/content/Context"); |
| 134 | jfieldID FieldAUDIO_SERVICE =lJNIEnv->GetStaticFieldID(ClassContext,"AUDIO_SERVICE", "Ljava/lang/String;"); |
| 135 | jobject AUDIO_SERVICE = lJNIEnv->GetStaticObjectField(ClassContext, FieldAUDIO_SERVICE); |
| 136 | |
| 137 | // Runs getSystemService(AUDIO_SERVICE) |
| 138 | jclass ClassAudioManager = lJNIEnv->FindClass("android/media/AudioManager"); |
| 139 | jmethodID MethodGetSystemService = lJNIEnv->GetMethodID(ClassNativeActivity, "getSystemService","(Ljava/lang/String;)Ljava/lang/Object;"); |
| 140 | jobject lAudioManager = lJNIEnv->CallObjectMethod(lNativeActivity, MethodGetSystemService, AUDIO_SERVICE); |
| 141 | |
| 142 | //get AudioManager.STREAM_MUSIC |
| 143 | jfieldID FieldSTREAM_MUSIC =lJNIEnv->GetStaticFieldID(ClassAudioManager,"STREAM_MUSIC", "I"); |
| 144 | jint STREAM_MUSIC = lJNIEnv->GetStaticIntField(ClassAudioManager, FieldSTREAM_MUSIC); |
| 145 | |
| 146 | //get AudioManager.FLAG_SHOW_UI |
| 147 | jfieldID FieldFLAG_SHOW_UI =lJNIEnv->GetStaticFieldID(ClassAudioManager,"FLAG_SHOW_UI", "I"); |
| 148 | jint FLAG_SHOW_UI = lJNIEnv->GetStaticIntField(ClassAudioManager, FieldFLAG_SHOW_UI); |
| 149 | |
| 150 | if (up) { |
| 151 | //get AudioManager.ADJUST_RAISE |
| 152 | jfieldID FieldADJUST_RAISE =lJNIEnv->GetStaticFieldID(ClassAudioManager,"ADJUST_RAISE", "I"); |
| 153 | jint ADJUST_RAISE = lJNIEnv->GetStaticIntField(ClassAudioManager, FieldADJUST_RAISE); |
| 154 | |
| 155 | //audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); |
| 156 | jmethodID MethodAdjustStreamVolume = lJNIEnv->GetMethodID(ClassAudioManager, "adjustStreamVolume", "(III)V"); |
| 157 | lJNIEnv->CallVoidMethod(lAudioManager,MethodAdjustStreamVolume, STREAM_MUSIC, ADJUST_RAISE, FLAG_SHOW_UI); |
| 158 | |
| 159 | } else { |
| 160 | //get AudioManager.ADJUST_LOWER |
| 161 | jfieldID FieldADJUST_LOWER =lJNIEnv->GetStaticFieldID(ClassAudioManager,"ADJUST_LOWER", "I"); |
| 162 | jint ADJUST_LOWER = lJNIEnv->GetStaticIntField(ClassAudioManager, FieldADJUST_LOWER); |
| 163 | |
| 164 | //audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); |
| 165 | jmethodID MethodAdjustStreamVolume = lJNIEnv->GetMethodID(ClassAudioManager, "adjustStreamVolume", "(III)V"); |
| 166 | lJNIEnv->CallVoidMethod(lAudioManager,MethodAdjustStreamVolume, STREAM_MUSIC, ADJUST_LOWER, FLAG_SHOW_UI); |
| 167 | } |
no outgoing calls
no test coverage detected