當前位置:首頁 » 安卓系統 » android字元串編碼

android字元串編碼

發布時間: 2022-07-11 04:22:35

⑴ 如何獲取Android設備唯一識別碼

DEVICE_ID
這是Android系統為開發者提供的用於標識手機設備的串號,也是各種方法中普適性較高的,可以說幾乎所有的設備都可以返回這個串號,並且唯一性良好。
這個DEVICE_ID可以同通過下面的方法獲取:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String DEVICE_ID = tm.getDeviceId();

它會根據不同的手機設備返回IMEI,MEID或者ESN碼,但在使用的過程中有以下問題:
非手機設備:最開始搭載Android系統都手機設備,而現在也出現了非手機設備:如平板電腦、電子書、電視、音樂播放器等。這些設備沒有通話的硬體功能,系統中也就沒有TELEPHONY_SERVICE,自然也就無法通過上面的方法獲得DEVICE_ID。
許可權問題:獲取DEVICE_ID需要READ_PHONE_STATE許可權,如果只是為了獲取DEVICE_ID而沒有用到其他的通話功能,申請這個許可權一來大才小用,二來部分用戶會懷疑軟體的安全性。
廠商定製系統中的Bug:少數手機設備上,由於該實現有漏洞,會返回垃圾,如:zeros或者asterisks
MAC ADDRESS
可以使用手機Wifi或藍牙的MAC地址作為設備標識,但是並不推薦這么做,原因有以下兩點:
硬體限制:並不是所有的設備都有Wifi和藍牙硬體,硬體不存在自然也就得不到這一信息。
獲取的限制:如果Wifi沒有打開過,是無法獲取其Mac地址的;而藍牙是只有在打開的時候才能獲取到其Mac地址。
獲取Wifi Mac地址:
獲取藍牙 Mac地址:
Sim Serial Number
裝有SIM卡的設備,可以通過下面的方法獲取到Sim Serial Number:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String SimSerialNumber = tm.getSimSerialNumber();

注意:對於CDMA設備,返回的是一個空值!
ANDROID_ID
在設備首次啟動時,系統會隨機生成一個64位的數字,並把這個數字以16進制字元串的形式保存下來,這個16進制的字元串就是ANDROID_ID,當設備被wipe後該值會被重置。可以通過下面的方法獲取:
import android.provider.Settings; String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.System.ANDROID_ID);

ANDROID_ID可以作為設備標識,但需要注意:
廠商定製系統的Bug:不同的設備可能會產生相同的ANDROID_ID:9774d56d682e549c。
廠商定製系統的Bug:有些設備返回的值為null。
設備差異:對於CDMA設備,ANDROID_ID和TelephonyManager.getDeviceId() 返回相同的值。
Serial Number
Android系統2.3版本以上可以通過下面的方法得到Serial Number,且非手機設備也可以通過該介面獲取。
String SerialNumber = android.os.Build.SERIAL;

⑵ android string如何把其他編碼變為utf-8編碼

這種問題解決方法很多,首先可以把網頁的編碼、傳送編碼等等一切編碼改為utf-8,這是最簡的方法
8859-1是單位元組編碼,而中文是兩個位元組的,所以編碼會出現問題

還可以通過編碼轉換的方式

設得到的字元串為s1
則轉換後的字元串為 String s2 = new String(s1.getBytes("iso-8859-1"),"utf-8");

⑶ android字元串轉換成16進制怎麼轉

android字元串轉換成16進制,參考如下內容:
/**
* 字元串轉換成十六進制字元串
* @param String str 待轉換的ASCII字元串
* @return String 每個Byte之間空格分隔,如: [61 6C 6B]
*/
public static String str2HexStr(String str)
{

char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;

for (int i = 0; i < bs.length; i++)
{
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
sb.append(' ');
}
return sb.toString().trim();
}

⑷ android 開發將默認字元串轉換為GB2312

android默認編碼格式是utf8,你是用java還是NDK轉啊?
java的話比較好弄。
NDK的話,你去搜關鍵詞「libicuuc.so」和「ucnv_convert」

⑸ 在Android Studio中字元串資源定義有問題,編碼不正確導致亂碼怎麼辦

如果你知道字元串實際應該顯示的內容,你可以直接刪掉亂碼的,輸入正確的;如果是全部的都顯示亂碼,先備份一下,然後你可以在studio右下角,切換一下文件編碼(utf8或者gbk或者別的)看行不行。

⑹ android字元集編碼,哪些支持中文哪些不支持中文

gbk,utf-8等等都是支持中文的。

⑺ android 怎樣使用log16進制格式輸出一個字元串的編碼

供的Log類。

在程序中輸出日誌, 使用 android.util.Log 類.
該類提供了若干靜態方法
Log.v(String tag, String msg);
Log.d(String tag, String msg);
Log.i(String tag, String msg);
Log.w(String tag, String msg);
Log.e(String tag, String msg);
分別對應 Verbose, Debug, Info, Warning,Error.
tag是一個標識,可以是任意字元串,通常可以使用類名+方法名, 主要是用來在查看日誌時提供一個篩選條件.

如果要後查看日誌 請使用
adb logcat
關於adb的更多信息請查看官方網站.
當執行 adb logcat 後會以tail方式實時顯示出所有的日誌信息.
這時候我們通常需要對信息進行過濾,來顯示我們需要的信息, 這時候我們指定的 tag就派上了用場.
adb logcat -s MyAndroid:I
這時將只顯示tag為MyAndroid,級別為I或級別高於I(Warning,Error)的日誌信息.

⑻ android Base64編碼 跟 PHP Base64編碼 差在哪

Base64是網路上最常見的用於傳輸8Bit位元組代碼的編碼方式之一,例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的唯一標識符(一般為128-bit的UUID)編碼為一個字元串,用作HTTP表單和HTTP GET URL中的參數。在其他應用程序中,也常常需要把二進制數據編碼為適合放在URL(包括隱藏表單域)中的形式。此時,採用Base64編碼具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。
轉碼過程例子:
3*8=4*6
內存1個字元佔8位
轉前: s 1 3
先轉成ascii:對應 115 49 51
2進制: 01110011 00110001 00110011
6個一組(4組) 011100110011000100110011
然後才有後面的 011100 110011 000100 110011
然後計算機是8位8位的存數 6不夠,自動就補兩個高位0了
所有有了 高位補0
再來看下代碼
android(java)版
import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; // 將 s 進行 BASE64 編碼 public static String getBASE64(String s) { if (s == null) return null; return (new sun.misc.BASE64Encoder()).encode( s.getBytes() ); } // 將 BASE64 編碼的字元串 s 進行解碼 public static String getFromBASE64(String s) { if (s == null) return null; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); return new String(b); } catch (Exception e) { return null; } }

PHP版

[下列代碼僅在GBK中實現,UTF8代碼請把 if($button=="某某地址->普通地址") echo substr(base64_decode(str_ireplace("xx://","",$txt1)),2,-2); 這句改為if($button=="某某地址->普通地址") echo substr(mb_convert_encoding(base64_decode(str_ireplace("xx://","",$txt1))),2,-2); 並把charset=gb2312改為charset=utf-8]

⑼ android如何將字元串轉換成16進制數

Integer.parseInt(String, 16);

熱點內容
win7最近打開文件夾 發布:2024-04-26 15:23:00 瀏覽:554
演算法筆談 發布:2024-04-26 15:14:34 瀏覽:283
技算計編程 發布:2024-04-26 14:43:42 瀏覽:140
開普票密碼區和備注是什麼意思 發布:2024-04-26 14:43:31 瀏覽:852
吃雞安卓和蘋果如何加好友 發布:2024-04-26 14:39:10 瀏覽:836
centos編譯命令 發布:2024-04-26 14:18:04 瀏覽:654
網路編程畢設 發布:2024-04-26 14:13:10 瀏覽:208
秦九韶演算法教案 發布:2024-04-26 13:30:22 瀏覽:412
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867