![]() |
|
ROMs y desarrollo Motorola Defy ROMs y desarrollo Motorola Defy |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
Ayuda!!!! sobre mod [tono contactos] de settings.apk Que no puedo meterle mano al smali.
Saludos
Estoy intentando realizar un mod de 'tono para contactos' de la agenda. La idea es poder seleccionar un tono para cuando recibes una llamada de un contacto de la agenda. Si esta opcion esta activada y el tono seleccionado lo use como tono de contacto si dicho contacto no tiene tono asignado Sobre la ROM cm 10.2 en un defy+ Modifico el settings pero el smali se me resiste, aun a pesar de hacer copy & paste. Me baje del repositorio android_packages_apps_Settings-cm-10.2.zip pero al importarlo en android studio me da error de strings duplicadas. Si uso un proyecto nuevo y pongo las instrucciones java que quiero, y uso el plugin java2smali me da errores porque le faltan definiciones. Uso Apktool 2.0.0-RC4 Asi q estoy un poco perdido porque ya no se q mas intentar. Aqui pongo una imagen del mod que estoy intentando hacer. Ver Imagen: http://s2.subirimagenes.com/imagen/previo/thump_9333891screenshot2015032321.png Estoy basandome en el código 'sonido al conectar cargador' del mismo archivo settings.apk Gracias haber si alguien me orienta de alguna manera como 'atacar' este mod. Debajo de initDockSettings(); es donde estoy intentando atacar. En principio este codigo es Código:
this.mRingtoneContacts = ((CheckBoxPreference)findPreference("ringtone_contacts")); CheckBoxPreference localCheckBoxPreference1 = this.mRingtoneContacts; boolean bool1; label773: String str; #ESTA SE ME RESISTE if (Settings.Global.getInt(localContentResolver, "ringtone_contacts_enabled", 0) != 0) { bool1 = true; localCheckBoxPreference1.setChecked(bool1); this.mRingtoneContactsRingtone = findPreference("ringtone_contacts_ringtone"); String str = Global.getString(localContentResolver, "ringtone_contacts_ringtone"); if (str == null) { str = Settings.System.DEFAULT_NOTIFICATION_URI.toString(); Settings.Global.putString(getContentResolver(), "ringtone_contacts_ringtone", str); } if (!str.equals("silent")) { break label884; } this.mRingtoneContacts.setSummary(getString(2131231436)); } label878: label884: Última edición por RIgodonius Día 26/03/15 a las 21:00:46 |
|
#2
|
![]()
Este invalida al primer post
Modificaciones de la Primera parte visual y seleccion de tono. SoundSettings.smali Buscar: Código:
# static fields .field private static final NEED_VOICE_CAPABILITY:[Ljava/lang/String; Cambiar a: Código:
# static fields .field private static final NEED_VOICE_CAPABILITY:[Ljava/lang/String; .field private static final KEY_RINGTONE_CONTACTS:Ljava/lang/String; = "ringtone_contacts" .field private static final RINGTONE_CONTACTS_ENABLED:Ljava/lang/String; = "ringtone_contacts_enabled" .field private static final TAG:Ljava/lang/String; = "RIgodonius" Buscar: Código:
.field private mVolumeOverlay:Landroid/preference/ListPreference; Cambiar a: Código:
.field private mVolumeOverlay:Landroid/preference/ListPreference; .field private mRingtoneContacts:Landroid/preference/CheckBoxPreference; .field private mRingtoneContactsRingtone:Landroid/preference/Preference; Añadir: Código:
#########ABAJO .method private launchRingtoneContactsSoundPicker(ILjava/lang/String;)V .locals 4 .param p1, "code" # I .param p2, "currentRingtoneContactsPath" # Ljava/lang/String; .prologue .line 583 new-instance v0, Landroid/content/Intent; const-string v2, "android.intent.action.RINGTONE_PICKER" invoke-direct {v0, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V .line 585 .local v0, "intent":Landroid/content/Intent; const-string v2, "android.intent.extra.ringtone.TITLE" const v3, 0x7f080a80 invoke-virtual {p0, v3}, Lcom/android/settings/SoundSettings;->getString(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; .line 587 const-string v2, "android.intent.extra.ringtone.TYPE" const/4 v3, 0x1 invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; .line 589 const-string v2, "android.intent.extra.ringtone.DEFAULT_URI" sget-object v3, Landroid/provider/Settings$System;->DEFAULT_RINGTONE_URI:Landroid/net/Uri; invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent; .line 591 if-eqz p2, :cond_0 const-string v2, "silent" invoke-virtual {p2, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_0 .line 593 invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object v1 .line 594 .local v1, "uri":Landroid/net/Uri; if-eqz v1, :cond_0 .line 595 const-string v2, "android.intent.extra.ringtone.EXISTING_URI" invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent; .line 598 .end local v1 # "uri":Landroid/net/Uri; :cond_0 invoke-virtual {p0, v0, p1}, Lcom/android/settings/SoundSettings;->startActivityForResult(Landroid/content/Intent;I)V .line 599 return-void .end method .method private setRingtoneContactsRingtone(Landroid/content/Intent;)V .locals 6 .param p1, "intent" # Landroid/content/Intent; .prologue .line 602 const-string v4, "android.intent.extra.ringtone.PICKED_URI" invoke-virtual {p1, v4}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable; move-result-object v3 check-cast v3, Landroid/net/Uri; .line 607 .local v3, "uri":Landroid/net/Uri; if-eqz v3, :cond_0 .line 608 invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity; move-result-object v4 invoke-static {v4, v3}, Landroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone; move-result-object v0 .line 609 .local v0, "ringtone":Landroid/media/Ringtone; invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity; move-result-object v4 invoke-virtual {v0, v4}, Landroid/media/Ringtone;->getTitle(Landroid/content/Context;)Ljava/lang/String; move-result-object v1 .line 610 .local v1, "toneName":Ljava/lang/String; invoke-virtual {v3}, Landroid/net/Uri;->toString()Ljava/lang/String; move-result-object v2 .line 617 .end local v0 # "ringtone":Landroid/media/Ringtone; .local v2, "toneUriPath":Ljava/lang/String; :goto_0 iget-object v4, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference; invoke-virtual {v4, v1}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V .line 618 invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver; move-result-object v4 const-string v5, "ringtone_contacts_ringtone" invoke-static {v4, v5, v2}, Landroid/provider/Settings$Global;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z .line 620 return-void .line 613 .end local v1 # "toneName":Ljava/lang/String; .end local v2 # "toneUriPath":Ljava/lang/String; :cond_0 const v4, 0x7f080a81 ###### invoke-virtual {p0, v4}, Lcom/android/settings/SoundSettings;->getString(I)Ljava/lang/String; move-result-object v1 .line 614 .restart local v1 # "toneName":Ljava/lang/String; const-string v2, "silent" .restart local v2 # "toneUriPath":Ljava/lang/String; goto :goto_0 .end method ########ARRIBA Modificar: Código:
.method public onActivityResult(IILandroid/content/Intent;)V .locals 1 .param p1, "requestCode" # I .param p2, "resultCode" # I .param p3, "data" # Landroid/content/Intent; .prologue .line 624 packed-switch p1, :pswitch_data_0 .line 631 invoke-super {p0, p1, p2, p3}, Lcom/android/settings/SettingsPreferenceFragment;->onActivityResult(IILandroid/content/Intent;)V .line 634 :cond_0 :goto_0 return-void .line 626 :pswitch_0 const/4 v0, -0x1 if-ne p2, v0, :cond_0 .line 627 invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setPowerNotificationRingtone(Landroid/content/Intent;)V goto :goto_0 .line 624 :pswitch_data_0 .packed-switch 0x1 :pswitch_0 .end packed-switch .end method a: Código:
# virtual methods .method public onActivityResult(IILandroid/content/Intent;)V .registers 8 .param p1, "requestCode" # I .param p2, "resultCode" # I .param p3, "data" # Landroid/content/Intent; .prologue const/4 v3, -0x1 .line 79 const-string v0, "RIgodonius" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V const-string v2, "requestCode=" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I .line 80 const-string v0, "RIgodonius" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V const-string v2, "resultCode=" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I .line 81 const-string v0, "RIgodonius" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V const-string v2, "Intent=" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I packed-switch p1, :pswitch_data_0 invoke-super {p0, p1, p2, p3}, Landroid/preference/PreferenceActivity;->onActivityResult(IILandroid/content/Intent;)V :cond_0 :goto_0 .line 97 return-void :pswitch_0 if-ne p2, v3, :cond_0 invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setRingtoneContactsRingtone(Landroid/content/Intent;)V #invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setPowerNotificationRingtone(Landroid/content/Intent;)V goto :goto_0 :pswitch_1 if-ne p2, v3, :cond_0 invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setRingtoneContactsRingtone(Landroid/content/Intent;)V goto :goto_0 :pswitch_data_0 .packed-switch 0x1 :pswitch_0 :pswitch_1 .end packed-switch .end method En: Código:
.method public onCreate(Landroid/os/Bundle;)V Buscar: Código:
invoke-direct/range {p0 .. p0}, Lcom/android/settings/SoundSettings;->initDockSettings()V y añadir despues: Código:
invoke-direct/range {p0 .. p0}, Lcom/android/settings/SoundSettings;->initRingtoneContacts()V En: Código:
.method public onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z modificar a: Código:
.locals 8 .prologue const/4 v1, 0x0 const/4 v2, 0x1 const/4 v7, 0x2 Bajar y despues de: Código:
const-string v3, "power_notifications_enabled" iget-object v4, p0, Lcom/android/settings/SoundSettings;->mPowerSounds:Landroid/preference/CheckBoxPreference; invoke-virtual {v4}, Landroid/preference/CheckBoxPreference;->isChecked()Z move-result v4 if-eqz v4, :cond_d move v1, v2 :cond_d invoke-static {v0, v3, v1}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z goto/16 :goto_0 .line 453 :cond_e Añadir: Código:
iget-object v0, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference; if-ne p2, v0, :cond_e1 #:cond_10 .line 454 invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 ############## abajo añadido const-string v3, "ringtone_contacts_enabled" iget-object v4, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference; invoke-virtual {v4}, Landroid/preference/CheckBoxPreference;->isChecked()Z move-result v4 if-eqz v4, :cond_d1 move v1, v2 :cond_d1 invoke-static {v0, v3, v1}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z goto/16 :goto_0 .line 453 :cond_e1 Bajar y despues de: Código:
const-string v3, "power_notifications_vibrate" iget-object v4, p0, Lcom/android/settings/SoundSettings;->mPowerSoundsVibrate:Landroid/preference/CheckBoxPreference; invoke-virtual {v4}, Landroid/preference/CheckBoxPreference;->isChecked()Z move-result v4 if-eqz v4, :cond_f move v1, v2 :cond_f invoke-static {v0, v3, v1}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z goto/16 :goto_0 .line 458 :cond_10 Añadir hasta el final del metodo: Código:
# I_N_S_T_R_U_C_C_I_O_N #if (preference == this.mPowerSoundsRingtone) { # iget-object v0, p0, Lcom/android/settings/SoundSettings;->mPowerSoundsRingtone:Landroid/preference/Preference; if-ne p2, v0, :cond_210 #cambiado ne -> eq .line 459 # I_N_S_T_R_U_C_C_I_O_N # launchNotificationSoundPicker(1, Global.getString(getContentResolver(), "power_notifications_ringtone")); # invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "power_notifications_ringtone" invoke-static {v0, v1}, Landroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 invoke-direct {p0, v2, v0}, Lcom/android/settings/SoundSettings;->launchNotificationSoundPicker(ILjava/lang/String;)V goto/16 :goto_0 :cond_210 # I_N_S_T_R_U_C_C_I_O_N #if (preference == this.mRingtoneContactsRingtone) { # iget-object v0, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference; if-ne p2,v0, :cond_211 #cambiado ne -> eq # I_N_S_T_R_U_C_C_I_O_N # launchRingtoneContactsSoundPicker(1, Global.getString(getContentResolver(), "ringtone_contacts_ringtone")); # invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "ringtone_contacts_ringtone" invoke-static {v0, v1}, Landroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 # ABAJO CAMBIO v7 invoke-direct {p0, v7, v0}, Lcom/android/settings/SoundSettings;->launchRingtoneContactsSoundPicker(ILjava/lang/String;)V goto/16 :goto_0 .line 464 :cond_211 # I_N_S_T_R_U_C_C_I_O_N # return super.onPreferenceTreeClick(preferenceScreen, preference); # invoke-super {p0, p1, p2}, Lcom/android/settings/SettingsPreferenceFragment;->onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z move-result v1 goto/16 :goto_1 .end method ######################################################################################################################################## .method private initRingtoneContacts()V .locals 6 .prologue const/4 v4, 0x0 .line 44 invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 .line 47 .local v1, "resolver":Landroid/content/ContentResolver; const-string v3, "ringtone_contacts" invoke-virtual {p0, v3}, Lcom/android/settings/SoundSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; move-result-object v3 check-cast v3, Landroid/preference/CheckBoxPreference; iput-object v3, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference; .line 49 iget-object v5, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference; const-string v3, "ringtone_contacts_enabled" invoke-static {v1, v3, v4}, Landroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I move-result v3 if-eqz v3, :cond_2 const/4 v3, 0x1 :goto_0 invoke-virtual {v5, v3}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V .line 51 const-string v3, "ringtone_contacts_ringtone" invoke-virtual {p0, v3}, Lcom/android/settings/SoundSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; move-result-object v3 iput-object v3, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference; .line 52 const-string v3, "ringtone_contacts_ringtone" invoke-static {v1, v3}, Landroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 54 .local v0, "currentRingtoneContactsPath":Ljava/lang/String; const-string v3, "RIgodonius" new-instance v4, Ljava/lang/StringBuilder; const-string v5, "currentRingtoneContactsPath1 " invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 55 const-string v3, "RIgodonius" new-instance v4, Ljava/lang/StringBuilder; const-string v5, "mRingtoneContactsRingtone1 " invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V iget-object v5, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference; invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 57 if-nez v0, :cond_0 .line 58 sget-object v3, Landroid/provider/Settings$System;->DEFAULT_RINGTONE_URI:Landroid/net/Uri; invoke-virtual {v3}, Landroid/net/Uri;->toString()Ljava/lang/String; move-result-object v0 .line 59 invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver; move-result-object v3 const-string v4, "ringtone_contacts_ringtone" invoke-static {v3, v4, v0}, Landroid/provider/Settings$System;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z .line 62 :cond_0 const-string v3, "RIgodonius" new-instance v4, Ljava/lang/StringBuilder; const-string v5, "currentRingtoneContactsPath2 " invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 63 const-string v3, "RIgodonius" new-instance v4, Ljava/lang/StringBuilder; const-string v5, "mRingtoneContactsRingtone2 " invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V iget-object v5, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference; invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 65 invoke-static {v0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object v3 ######## invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity; move-result-object v5 ######### invoke-static {v5, v3}, Landroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone; move-result-object v2 .line 66 .local v2, "ringtone2":Landroid/media/Ringtone; const-string v3, "RIgodonius" new-instance v4, Ljava/lang/StringBuilder; const-string v5, "Ringtone1 " invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 68 if-eqz v2, :cond_1 .line 69 iget-object v3, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference; ############## invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity; move-result-object v4 invoke-virtual {v2, v4}, Landroid/media/Ringtone;->getTitle(Landroid/content/Context;)Ljava/lang/String; ############## move-result-object v4 invoke-virtual {v3, v4}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V .line 70 const-string v3, "RIgodonius" new-instance v4, Ljava/lang/StringBuilder; const-string v5, "Ringtone2 " invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 81 :cond_1 return-void .end local v0 # "currentRingtoneContactsPath":Ljava/lang/String; .end local v2 # "ringtone":Landroid/media/Ringtone; :cond_2 move v3, v4 # de v4 a v3 .line 49 goto/16 :goto_0 .end method En el archivo res\values-es\strings.xml añadir: Código:
<string name="ringtone_contacts_category_title">Tono de los contactos</string> <string name="ringtone_contacts_enable_title">Tono</string> <string name="ringtone_contacts_enable_summary">Reproducir un tono cuando llama un contacto</string> <string name="ringtone_contacts_ringtone_title">Sonido de contacto</string> <string name="ringtone_contacts_ringtone_silent">Ninguno</string> En el archivo res\xml\sound_settings.xml Despues de: Código:
<com.android.settings.IncreasingRingPreference android:persistent="false" android:title="@string/increasing_ring_title" android:key="increasing_ring" android:dialogTitle="@string/increasing_ring_title" android:streamType="ring" /> Añadir: Código:
<PreferenceCategory android:title="@string/ringtone_contacts_category_title" /> <CheckBoxPreference android:persistent="false" android:title="@string/ringtone_contacts_enable_title" android:key="ringtone_contacts" android:summary="@string/ringtone_contacts_enable_summary" android:defaultValue="false" /> <Preference android:persistent="false" android:title="@string/ringtone_contacts_ringtone_title" android:key="ringtone_contacts_ringtone" android:dependency="ringtone_contacts" /> Fin Primera Parte. [RESIZE=100] ![]() Ahora estoy en la segunda parte que es interceptar una llamada y ver cuando se asigna el tono que es mas lioso de lo que pensaba en el phone.apk, asi q si alguien controla el smali del phone.apk y me puede orientar se lo agradeceria. Un saludo y a ver smali y java...... Última edición por RIgodonius Día 07/04/15 a las 11:26:23 |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 09:18:01 (GMT +2)
HTCMania: líderes desde el 2007