2

私は開発者であり、Google Play 開発者コンソールで Samsung Galaxy Note4 の特定のモデルをブロックしようとしています。

たとえば、コンソールから取得した以下のリストから、 SM-N910Cが何に変換されるかを知りたいです。ここに画像の説明を入力

それを行う方法はありますか?手動またはプログラムで... http://developer.android.com/reference/android/os/Build.htmlの一部ではないと思います

4

1 に答える 1

1

ですから、これは間違いなく遅すぎますが、最近同じ質問があったので、調べることにし、実用的な理論を開発しました.

Google Play デベロッパー コンソールに表示される 2 つの文字列は、Android のシステム プロパティだと思います。より使いやすいのは「ro.product.model」で、もう1つは「ro.product.device」です。このマッピングは、少なくとも私が現在利用できるデバイスでは機能しているようです。これら 2 つの値が Google が提供するものと一致しないことに気付いた場合は、その旨をコメントしてください。

プログラムで Android システム プロパティを読み取るには、次のようにネイティブ コードへの JNI 呼び出しが必要です。

package com.example;

class Native {
    // pass a String[2]
    public static native void readModelAndDevice(String[] _results);
}

-

#include <jni.h>
#include <sys/system_properties.h>

char model[256], device[256];

extern "C" JNIEXPORT void JNICALL com_example_Native_readModelAndDevice
(
    JNIEnv * _java, jclass _class, jobjectArray _array
)
{
    __system_property_get("ro.product.model", model);
    __system_property_get("ro.product.device", device);
    jstring jmodel = _java->NewStringUTF(model);
    jstring jdevice = _java->NewStringUTF(device);
    _java->SetObjectArrayElement(_array, 0, jmodel);
    _java->SetObjectArrayElement(_array, 1, jdevice);
    return;
}

Android Studio で JNI を行ったことがない場合は、この例を試す前に JNI チュートリアルを完了する必要があります。

于 2018-03-28T11:39:05.697 に答える