無条件の着信転送を行うサンプル プログラムを作成しました。このコードは、電話の設定で意図したとおりに着信転送を設定します。しかし、アプリでそれが成功したかどうかをどのように確認できますか? ここで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();
}
}
}
}