2017-11-20 16 views
-1

私はJavaとAndroidで初めてです。私は基本的に私のデバイスからハードウェアのシリアル番号を取得する必要があります。 私は次のことを試してみた:MarshmallowのgetSerial()メソッド

import android.content.*; 
import android.os.Build; 
public static String recup_android() 
{ 
String androidid; 
String SerialNumber; 
androidid=android.os.Build.MODEL; 
SerialNumber=android.os.Build.getserial; 
return SerialNumber; 
} 

私は次のようなエラーに直面しています: のjava:40:エラー:変数getserial 場所:シンボルに

SerialNumber=android.os.Build.getserial; 
           ^

シンボル見つけることができないクラスのビルドを 1エラー :compileDebugJavaWithJavac FAILED

ここには何がありますか? androidid(MODEL)を返すとOKになります。 クラスの宣言には何かがありますか?あなたは間違ってgetSerialを使用しているあなたの貴重な助け を事前に

おかげエリー

答えて

1

。そのメソッドは可変ではなく、API 26以降で利用できます。古いバージョンでは、あなたがgetSerial()を呼び出す前READ_PHONE_STATE権限を持っていることを確認してくださいBuild.SERIAL

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 
{ 
    // Todo Don't forget to ask the permission 
    SerialNumber = Build.getSerial(); 
} 
else 
{ 
    SerialNumber = Build.SERIAL;  
} 

を使用しています。それ以外の場合は、アプリケーションがクラッシュします。

アクセス許可を求めるにはthis tutorialを確認してください。

+0

メソッド名は 'getSerial'でなければなりません – akash93

+0

あなたの素早い返答に感謝します。新しいgetserial()を追加し、.tostringを使用して文字列に送信する必要がありますか? – SoundOfThunder

+0

@SoundOfThunder getSerial()戻り値の型はStringです。 toString()を使う必要はありません。更新された回答を確認してください。問題が解決したら回答を受け入れることを忘れないでください; –

関連する問題