2

アプリがEclipseからインストールされ実行された(USB経由でモバイルに接続された)ことを(たとえばアクティビティで)どのように知ることができますか?

4

2 に答える 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 に答える