ANDROID_IDと、identifierForVendorを取得

  • 0
    いいね
  • 0
    コメント

    C++Builderを使用してANDROID_IDとidentifierForVendor(IDFV)を取得を試す。

    ID Description
    ANDROID_ID ANDROID_IDは、Android端末の初期化時にランダムに生成された文字列です。
    identifierForVendor(IDFV) identifierForVendor(IDFV)は、iOS UDIDの代替としてiOS 6.0から使用できるIDです。 異なるベンダ(開発者)を持つアプリケーションでは、異なるIDが返されます。複数のアプリケーション間で同じ値を得ることができます。異なる端末で異なる値が返されることは保証されません。
    uGetUuid.hpp
    #if defined(_PLAT_IOS)
        #include <Macapi.Helpers.hpp>
        #include <iOSapi.UIKit.hpp>
    #elif defined(__ANDROID__)
        #include <Androidapi.Helpers.hpp>
        #include <Androidapi.JNI.Provider.hpp>
    #else
        #include <IdIPWatch.hpp>
    #endif
    struct TGetUUID
    {
        static const UnicodeString get_uuid();
    };
    
    uGetUuid.cpp
    const UnicodeString TGetUUID::get_uuid()
    {
    #if defined(_PLAT_IOS)
        _di_UIDevice device_ = TUIDevice::Wrap(TUIDevice::OCClass->currentDevice());
        return NSStrToStr(device_->identifierForVendor()->UUIDString());
    #elif defined(__ANDROID__)
        using namespace Androidapi::Jni::Provider;
        using namespace Androidapi::Helpers;
        return JStringToString(
            TJSettings_Secure::JavaClass->getString(
                SharedActivity()->getContentResolver(),
                TJSettings_Secure::JavaClass->ANDROID_ID
            ));
    #else
    #endif
    }
    
    

    使い方

    In the button click event, return ID to Edit1->Text.

    Unit1.cpp
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        Edit1->Text = TGetUUID::get_uuid();
    }
    //---------------------------------------------------------------------------
    

    Delphiコードは、下記URL.

    https://community.embarcadero.com/answers/device-information