Haruyuki Mohri

毛利春幸のブログです。

ANDROID_IDと、identifierForVendorを取得

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.h
#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();
}
//---------------------------------------------------------------------------

f:id:mojeld:20170616153414p:plain

Delphiコードは、下記URL.

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