2012-02-24 11 views
3

Javadocによると、android.util.Base64.decode()は、テキストと "フラグ"という2つのパラメータをとります。これらのフラグは、int型の形態であり、(私が引用):android.util.Base64フラグを符号化/復号化する

flags controls certain features of the decoded output. Pass DEFAULT to decode standard Base64.

まず第一に、漠然としたJavadocを書くことにした誰のおかげ。 Base64にはいくつかの列挙文字列があり、実際にはBase64.NO_WRAPをフラグとして使用しています。しかし、この特定の例では、NO_WRAPとURL_SAFEという2つのフラグを使用する必要があります。

どのように両方のフラグを指定しますか?パイプで( '|')それらを分離しようとしましたが、それはできませんでした。

import android.util.Base64; 
public class Foo { 
    public static void main(String[] args) { 
     String urlSafeBase64EncodedString = getUrlSafeBase64EncodedString(); 
     int flags = ????????; //Need both Base64.NO_WRAP and Base64.URL_SAFE 
     String decodedString = Base64.decode(urlSafeBase64EncodedString, flags); 
    } 
} 

お時間をいただきありがとうございます。

+0

"それはそれをしなかった" - それは何をしたのですか? (あなたは何を書いたのですか?)他人があいまいであると不平を言うなら、それは自分自身の正確さに役立ちます:) –

+0

それは何もしませんでした。 Base64文字列のデコードに失敗しました。私はすでに言った、私はパイプのシンボルで2つのフラグを分離...どのように正確にはっきりしていないのですか? –

+0

たとえば、 "Base64.NO_WRAP | URL_SAFE"のように構文が間違っている可能性があります。それはもちろん、コンパイルエラーを与えてしまったでしょう...それは "それもやっていません"で覆われていました。今は "何もしなかった"と "それはBase64文字列を解読できませんでした"と全く同じことではありません。 *どのようにデコードできませんでしたか?例外があったのですが、空の結果が出ましたか? –

答えて

17

関数に渡されるintフラグは通常、ビット単位でORされ、結合効果を実現します。あなたは通常、一定の値を見ることで知ることができ

、彼らは0 1 2 4 8 16を行くだろう。..

あなたの旗の定義については、以下を使用することができますあなたの質問については:

int flags = Base64.NO_WRAP | Base64.URL_SAFE; 
+0

私はCS教授にこれを決してしないことについて非常に厳しい手紙を書く必要があります。このファイルを後で保存するつもりです。素晴らしい仕事を!ありがとうございました! –