Android Gmailメール署名のカスタマイズのニーズ

要件の説明:

  • SKUI IDが600TELまたは600CLAの場合、電子メールを送信するときに、署名を構成する必要があります
    。Telcel:「Enviado desde mi <ブランド名> de Telcel」。 
    クラロ:「Enviado desde mi <ブランド名> de Claro。」ここで:
    <ブランド名>はメーカーを指します。  <Android Go用のメールPartnerProviderアプリの簡単な紹介>を参照してください。
  • Telcelは、次のとおり です。「Telcelの私のNokiaから送信されました。」

     Claroは、  「私のClaro Nokiaから送信されました」です。

Googleが提供するGmailPartnerProviderでカスタマイズします。注:Googleで確認した後、この要件のグローバル署名は、Gmailメールボックスアカウントを除く他の3者のメールボックス署名に対して有効です。つまり、Gmailを使用して163、QQ、およびMicrosoftのメールボックスにログインすると、メールボックスの署名は有効になり、Gmailアカウントにログインするためのメールボックスの署名は無効になります。

 

 
ステップ1:GmailPartnerProviderを設定する

java / com / android / email / partnerprovider / PartnerProvider.java

パブリックカーソルクエリ()メソッドで、MATCH_GLOBAL_SIGNATUREの場合にglobalSignatureを変更し、戻り値にglobalSignatureのカーソルを含めます。

      case MATCH_GLOBAL_SIGNATURE:

        cursor = new MatrixCursor(GLOBAL_SIGNATURE_COLUMNS);

        //+added

        String globalSignature = "";

        String str = getProperty("ro.boot.skuid", "");

        if("600TEL".equals(str)||"600CLA".equals(str)) {

         Resources res = getContext().getResources();

         Configuration config = res.getConfiguration();

            globalSignature = getContext().getString(R.string.global_signature);

            Log.e(TAG, "chentest mmc=" + Integer.toString(config.mcc)

                    + "-mnc=" + Integer.toString(config.mnc) + " globalSignature: " + globalSignature);

        }

        //-added

        if (!TextUtils.isEmpty(globalSignature)) {

          cursor.addRow(new Object[] {globalSignature});

        }

        return cursor;

res / values / strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

  <string name="global_signature">Sent from Android device</string>

</resources>

同時に、異なるSIMカードに応じて、異なる言語を異なるmcc / mnc文字列で表示できます。たとえば、res / values-mcc330-mnc110 / strings.xml

<resources>

  <string name="global_signature">Enviado desde mi Nokia de Claro.</string>

</resources>
res / values-mcc334-mnc020 / strings.xml
<?xml version="1.0" encoding="utf-8"?>

<resources>

  <string name="global_signature">Enviado desde mi Nokia de Telcel.</string>

</resources>
 

×注:

Android Goプロジェクトの場合、AndroidManifest、xmlを変更する必要があります

    <provider

      android:name=".PartnerProvider"

      android:authorities="com.android.email.partnerprovider.lite"

      android:exported="true"

      android:permission="com.android.email.partnerprovider.PARTNER_PROVIDER" />

  </application>

またjava / com / android / email / partnerprovider / PartnerProvider.java

  static final String AUTHORITY = "com.android.email.partnerprovider.lite";

Android Goプロジェクトではない場合、AndroidManifest、xml

    <provider

      android:name=".PartnerProvider"

      android:authorities="com.android.email.partnerprovider"

      android:exported="true"

      android:permission="com.android.email.partnerprovider.PARTNER_PROVIDER" />

  </application>

またjava / com / android / email / partnerprovider / PartnerProvider.java

  static final String AUTHORITY = "com.android.email.partnerprovider";

2番目のステップ、Android.mkファイル

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := GmailPartnerProvider
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_SDK_VERSION := current
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SRC_FILES := $(call all-java-files-under)

include $(BUILD_PACKAGE)

ステップ3:GmailPartnerProviderをコンパイルに追加する

アンドロイド/デバイス/ QCOM /プロジェクト/プログラムの.mk

#+add

PRODUCT_PACKAGES += \

  GmailPartnerProvider
 
31件の元の記事を公開 いいね6 10,000人以上の訪問者

おすすめ

転載: blog.csdn.net/u012824529/article/details/104008395