policy=23 の意味は何ですか?
特定のことを通知するように StrictMode を構成でき、通知方法(単純なログ メッセージ、例外など)を指定できます。このブログ投稿の「 StrictModeの有効化」セクションを参照してください。
ポリシーは、その構成を内部的に追跡するビットマスクです。これはマスクなので、2 進数 (10111) で解釈する方が直感的です。その後、BlockGuard.java
ソース ファイル内の関連ビットを検索できます。これはこのサイト からの短いコピーです(Android のバージョンがわからないので、新しいバージョンにはもっと多くのものがあるかもしれません。現在、私のマシンには現在のソースがありません) :
public static final int DISALLOW_DISK_WRITE = 0x01;
public static final int DISALLOW_DISK_READ = 0x02;
public static final int DISALLOW_NETWORK = 0x04;
public static final int PASS_RESTRICTIONS_VIA_RPC = 0x08;
public static final int PENALTY_LOG = 0x10;
public static final int PENALTY_DIALOG = 0x20;
public static final int PENALTY_DEATH = 0x40;
これにより、StrictMode が、ログ メッセージを介して DISK_READ、DISK_WRITE、および NETWORK 違反を通知するように構成されていることがわかります。
そして violation=2 とは何ですか?
これは、何らかの内部 int 定数としてのビアロレーションのタイプです。例外の名前がすでにそれを示しているので、それはあまり役に立ちません。getMessage()
作成者は、サブクラス化されたさまざまな StrictMode 例外すべてで使用される 1 つのメソッドを定義しただけです。参考までに、これらの定数はStrictMode.java内で定義されています。