Для активации записи разговора надо в файле PhoneFeature.class (smali) добавить в "функцию"
public static void makeFeatureForCommon() вызовы процедур "voice_call_recording", "voice_call_recording_second_call_ongoing", "voice_call_recording_easy_mode" с константой
true.
Я выбрал место, сразу после вызова "support_merge_call"
.line 1317
sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v5, "support_merge_call"
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v6
invoke-virtual {v0, v5, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v5, "voice_call_recording"
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v6
invoke-virtual {v0, v5, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v5, "voice_call_recording_second_call_ongoing"
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v6
invoke-virtual {v0, v5, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v5, "voice_call_recording_easy_mode"
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v6
invoke-virtual {v0, v5, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 1318
sget-object v0, Lcom/android/phone/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v5, "fdn_contact_search"
Если еще добавить вызов "voice_call_recording_menu", тогда сохранится кнопка добавления вызова, а запись разговора будет активироваться из вслывающего меню (по кнопке "menu" при активном разговоре).
Есть еще мысли, как сделать запись разговоров на внешнюю SD. Для этого можно в файле
PhoneVoiceRecorder.class в строке
public static final String PHONE_PATH = (new StringBuilder()).append(Environment.getExternalStorageDirectory().getPath()).append("/Sounds").toString();
сделать изменения
public static final String PHONE_PATH = (new StringBuilder()).append(Environment.getExternalStorageDirectory().getParent()).append("/extSdCard/Sounds").toString();
Но такой путь не нравится, надо предварительно проверить наличие SD карты, а уже потом туда писать. А декомпилировать - компилировать smali, чтоб добавить своего кода, я пока не особо пытался (читай - не умею).
Сообщение отредактировал Ланыч - 21.05.14, 12:15