I'm using the RingtoneManager to pick a ringtone. However, my
onActivityResult() method is getting invoked too soon. As soon as the
ringtone picker dialog appears, onActivityResult() is invoked with a
non-RESULT_OK result code, even before I select any ringtones or
select the "OK" button. Then, after choosing a ringtone and selecting
"OK", onActivityResult() doesn't get called any more.

Here are the pertinent sections of my code. Note that this.toast() is
just a wrapper to send a toast.

    private boolean menuChoice(MenuItem item) {
        switch (item.getItemId()) {
        case 0:
            this.ringtonePicker();
            return (true);
        }
        return (false);
    }

    public void ringtonePicker() {
        Intent intent = new
Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select
ringtone");
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT,
false);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,
true);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION);
        this.startActivityForResult(intent, 999);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode,
Intent intent) {
        this.toast("onActivityResult: " + requestCode + ", " +
resultCode);
        if (resultCode != RESULT_OK) {
            this.toast("result code not " + RESULT_OK);
            return;
        }
        if (requestCode == 999) {
            this.toast("request code is OK");
            Uri uri =
intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
            if (uri != null) {
                String ringTonePath = uri.toString();
                this.toast("ringtone path: " + ringTonePath);
            }
            else {
                this.toast("no ringtone path");
            }
        }
        else {
            this.toast("request code not OK");
        }
        super.onActivityResult(requestCode, resultCode, intent);
    }

The only toast messages I get are "onActivityResult: 999, 0" and
"result code not -1", and these occur when the ringtone picker first
shows up, and before I pick any ringtones or select "OK".

The onActivityResult() method doesn't get called any more, even after
I pick a ringtone and select "OK".

What could I be doing wrong which would cause onActivityResult() to be
called with a failure before I even pick a ringtone? ... even though
the ringtone picker shows up properly?

Thanks in advance.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to