2

無条件の着信転送を行うサンプル プログラムを作成しました。このコードは、電話の設定で意図したとおりに着信転送を設定します。しかし、アプリでそれが成功したかどうかをどのように確認できますか? ここでonStart()呼び出しstartActivityForResult()を行い、RESULT CODE に基づいて、2 つの異なるアクションを実行する必要があります (RESULT_OK と RESULT_CANCELLED の場合)。ここでの問題は、大文字と小文字に関係なく、常に RESULT_CANCELLED に設定することです。

public class CallForwardFragment extends Fragment {
    static final int CALL_FORWARD_REQUEST = 1;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.main, container,
                false);

        return v;
    }

    public void onStart() {
        super.onStart();

        String phoneNumber="9875678956";
        String urls = "tel:" + "**21*" +phoneNumber + Uri.encode("#");
        Intent intentCallForward = (new Intent(Intent.ACTION_CALL,
                    Uri.parse(urls)));
        intentCallForward.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivityForResult(intentCallForward, CALL_FORWARD_REQUEST);

    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Toast.makeText(getActivity(), resultCode + "ResultCode",
                Toast.LENGTH_SHORT).show();

        if (requestCode == CALL_FORWARD_REQUEST) {
            // Make sure the request was successful
            if (resultCode == getActivity().RESULT_OK) {
                session.enableCallForward();
                session.setCallForwardNumber(callFwdPhNum);
                session.setCallForwardChoice(Integer
                        .parseInt(ProfileDetailFragment.callFwdDetailsUtil
                                .getmFwdCondition()));
            } else if (resultCode == getActivity().RESULT_CANCELED) {
                //Always this will be called for both success and fail
                Toast.makeText(getActivity(), "Cancelled", Toast.LENGTH_SHORT)
                        .show();

            }
        }
    }
}
4

1 に答える 1

1

現時点では、これはまったく不可能だと思います。これを見てください。

于 2013-06-13T11:04:14.180 に答える