2017-09-13 29 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

查看已更新的答案。您只能在通過活動致電時收到結果。 –