1

USSDコードを送信するアプリケーションがあります。あるタイプの状況では、インターフェイスを使用したユーザー アクションから、別のタイプの SMS (ワイルドカードを使用) を受信した場合。

USSDを送信するためのコードがあります:

private static void setCallDivert (Context context, String phoneNo) {
    String callForwardString = "**21*" + phoneNo + "#";
    Log.i("Call forward string", callForwardString);

    Intent intentCallForward = new Intent(Intent.ACTION_CALL);
    intentCallForward.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    Uri uri2 = Uri.fromParts("tel", callForwardString, "#");
    intentCallForward.setData(uri2);                                
    context.startActivity(intentCallForward);
    divertDbRecord (context, true, phoneNo);
}

ボタンの onClick メソッドから呼び出すと、問題なく動作しました。

SMS Handler から呼び出した場合、「転送でんわ接続に問題があるか、MMI コードが無効です」というメッセージが表示されます。

logcat で、リクエストを確認できます。どちらの状況でも同じです。

もちろん、エミュレーターではなく、実際の Android フォンでテストしています。

たぶん、誰かが私を助けることができますか?

4

1 に答える 1

1

Uri ハッシュをエンコードする必要があります

public static final String encodedHash = Uri.encode("#");

これにより、ダイヤラは # 値を正しく解釈できます

于 2013-06-22T13:50:24.803 に答える