アプリがEclipseからインストールされ実行された(USB経由でモバイルに接続された)ことを(たとえばアクティビティで)どのように知ることができますか?
2 に答える
3
すべてのアプリケーションは証明書によって署名されています。日食によって打ち上げられたときでさえ。EclipseでAndroidSDKを使用する場合、デバッグキーストアがデフォルトで作成され、IDEを使用してアプリケーションをビルドしてデバイス/エミュレーターにプッシュするたびに使用されます。
コード内のキーストアに関する情報を取得して、それが独自の署名付きコードであるかどうかを確認できます。私はEclipseのアプリケーションで以下の迅速で汚いコードを使用しました:
try {
PackageInfo pi = this.getPackageManager().getPackageInfo( this.getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signatures = pi.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = CertificateFactory.getInstance("X509");
X509Certificate cf509 = (X509Certificate) cf.generateCertificate(input);
Log.d(LOG_TAG, "Certificate issued by: " + cf509.getIssuerDN() );
} catch ( Exception e ) {
結果は次のとおりです。
Certificate issued by: CN=Android Debug, O=Android, C=US
より良い構造化されたコードとクレジットはこのリンクに行きます:http: //thomascannon.net/misc/android_apk_certificate/
于 2012-10-04T14:04:27.677 に答える
1
android:debuggable =trueフラグを使用してEclipseからアプリケーションをビルドします。次に、次のアプローチでアプリからその値を確認できます。コードからandroidManifestの「デバッグ可能な」値を取得しますか?
于 2012-10-04T12:51:39.030 に答える