2017-06-07 23 views
4

アプリを使用してUSSDコードを実行したいが、問題は「#」記号を認識しないことである。 "* 100#"を実行したい場合は、入力を "* 100"として認識します。 "#"を追加する方法。それを認識しない理由は何ですか?AndroidスタジオUSSDコードを実行するアクションコール

String encodedHash = Uri.encode("#"); 
    i.setData(Uri.parse("tel:"+"*100"+encodedHash)); 

    if (ActivityCompat.checkSelfPermission(this, 
      Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
     return; 
    } 
    startActivity(i); 
+0

参照[この回答](https://stackoverflow.com/a/35547547/4768284)。 –

+0

USSDコードはAndroidではサポートされていません。すべてのデバイスで機能する信頼できる方法はありません。とにかくそれらを本当に使用するべきではありません--USSDはデータ計画の前に存在していたハックでした。最近は、代わりにWebサービスを呼び出す必要があります。 –

+0

「#」を入れる方法はありますか?なぜ文字列全体がここに取られないのですか –

答えて

2

このcode.Use Uri.encode("#")を試してみてください...私のコードです。

例:

Uri.parse("tel:"+ Uri.encode("*100#")); 
+0

感謝しました。 –

2

あなたはUri.Parse()Uri.encode("YOUR USSD CODE")を使用する必要があります。ここでは

checkBalance.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent i = new Intent(Intent.ACTION_CALL); 


      i.setData(Uri.parse("tel:"+"*100#")); 

      if (ActivityCompat.checkSelfPermission(mobitelPage.this, 
        Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
       return; 
      } 
      startActivity(i); 



     } 
    }); 
関連する問題