不管是pc端的软件仍是安卓端的软件,有时候在出售时若是没有被买断或者购买版权,那么就须要一套一套的卖,而且要保证禁止软件的拷贝。android
在pc端的软件能够在代码中加上检测硬盘序列号。这样的话拷贝到另外一台电脑上就不能够用了,由于硬盘序列号识别错误。那么在安卓端没有硬盘就须要获取一些其它硬件的参数来惟一标识设备。git
1.获取IMEI标识码:IMEI(International Mobile Equipment Identity)是国际移动设备标识的缩写。ide
TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String szImei = TelephonyMgr.getDeviceId(); // Requires use-permision: READ_PHONE_STATE
须要注意的是,使用该方法是须要加入使用权限:ui
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
2.获取其它设备参数spa
直接上代码:code
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView tv = (TextView) findViewById(textView); findViewById(R.id.btn_getId).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String m_szDevIDShort = "BOARD:"+Build.BOARD.toUpperCase()+"\n" + "BRAND:"+Build.BRAND.toUpperCase()+"\n" + "CPU_ABI:"+Build.CPU_ABI.toUpperCase() +"\n" + "DEVICE:"+Build.DEVICE.toUpperCase() +"\n" + "DISPLAY:"+Build.DISPLAY.toUpperCase() +"\n" + "HOST:"+ Build.HOST.toUpperCase() +"\n" + "ID:"+Build.ID.toUpperCase() +"\n" + "MANUFACTURER:"+Build.MANUFACTURER.toUpperCase()+"\n" + "MODEL:"+Build.MODEL.toUpperCase() +"\n" + "PRODUCT:"+Build.PRODUCT.toUpperCase() +"\n" + "TAGS:"+Build.TAGS.toUpperCase() +"\n" + "TYPE:"+Build.TYPE.toUpperCase() +"\n" + "USER:"+Build.USER.toUpperCase() +"\n"; //13 digits tv.setText(m_szDevIDShort); } }); }
有了这些惟一标识,就能使软件变得独一无二……而且不可复制。blog