2017-09-13 61 views
0

铃声我开发一个应用程序,用户可以设置来电铃声设置为指定的任务如何获得设置的通知

这里是为appointment.class代码:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 
    RingtoneManager.TYPE_NOTIFICATION); 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone"); 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri)    
    null); 
    this.startActivityForResult(intent, 5); 

和活动延伸到BroadcastReceiver

@Override 
public void onReceive(Context context, Intent intent) { 

    switch (getResultCode()){ 
     case AppointmentPage.RESULT_OK: 
      Log.e("Sample","asdas"); 
      break; 
    } 

我的问题是我没有看到我的Logcat中的示例。我怎样才能看到它?

回答

0

你应该在你的活动使用onActivityResults为用户保存自己的喜好,然后检索它在你的onRecieve使用它

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 

switch (requestCode) { 
    case 5: { 
     if (resultCode == RESULT_OK) { 
      Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
     if (uri != null) { 
      SharedPreferences sharedPreference = getSharedPreferences("key_for_shared_preference",MODE_PRIVATE); 
      SharedPreferences.Editor editor = sharedPreference.edit(); 
      editor.putString("selected_ringtone_uri",uri.toString()); 
      editor.apply(); 
      } 
      break; 
     } 
    } 
} 
} 

对于这个工作,你需要从同一活动火的意图

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 
RingtoneManager.TYPE_NOTIFICATION); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone"); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri)    
null); 
startActivityForResult(intent, 5); 

,每一次检索它在你的广播接收器中的onReceive

@Override 
public void onReceive(Context context, Intent intent) { 

    SharedPreferences sharedPreference = getSharedPreferences("key_for_shared_preference",MODE_PRIVATE); 
    String ringtoneUri = sharedPreference.getString("selected_ringtone_uri",""); 
    if(!ringtoneUri.contentEquals("")){ 
     Log.d("ringtone uri",ringtoneUri); 
    } 
} 
+0

你试过这个@MarlonJoshua? –

+0

它说不能解决方法。在一个扩展为BroadcastReceiver的类中可能有一个onactivity结果? –

+0

查看已更新的答案。您只能在通过活动致电时收到结果。 –