導航:首頁 > 操作系統 > androidnewbyte

androidnewbyte

發布時間:2023-01-24 08:18:16

1. android中怎麼將音頻文件轉成Byte

為何要轉呢?這個哥們也是不懂,你可以去看一下教程。http://www.eoeandroid.com/thread-565331-1-1.html

2. 我在android編程時,寫了一句byte buffer[]=new byte(4*1024),eclipse 顯示出錯,為什麼

如果java環境和eclipse都正常的話,可試一下
Byte[] buffer = new Byte[4*1024];

二樓的
Byte buffer[] = new Byte[4*1024];
這也是一種寫法,是正確的。不信你查資料……

3. android如何把byte數據存到內存中並轉為bitmap,求高手~~~~~~~~~~~~~~~~~~~~~~~~~~~

import java.io.File;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class MainAct extends Activity {
private ImageView img;
//圖片路徑
private String filepath = "/sdcard/sample.jpg";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
img = (ImageView) findViewById(R.id.img);
File file = new File(filepath);
if (file.exists()) {
Bitmap bm = BitmapFactory.decodeFile(filepath);
//將圖片顯示到ImageView中
img.setImageBitmap(bm);
}
}
}

請參考

4. android 字元串轉byte數組

Android 字元串、byte數組與16進制數組間的轉換

<spanstyle="font-family:SimSun;font-size:14px;">//字元串轉換成16進制文字列的方法
publicStringtoHex(Stringstr){
StringhexString="0123456789ABCDEF";
byte[]bytes=str.getBytes();
StringBuilderhex=newStringBuilder(bytes.length*2);
for(inti=0;i<bytes.length;i++){
hex.append(hexString.charAt((bytes[i]&0xf0)>>4));//作用同n/16
hex.append(hexString.charAt((bytes[i]&0x0f)>>0));//作用同n
hex.append('');//中間用空格隔開
}
returnhex.toString();
}

//將16進制數組轉換為字元串
publicstaticStringdecode(Stringbytes){
StringhexString="0123456789ABCDEF";
ByteArrayOutputStreambaos=newByteArrayOutputStream(bytes.length()/2);
//將每2位16進制整數組裝成一個位元組
//for(inti=0;i<bytes.length();i+=2)
//baos.write((hexString.indexOf(bytes.charAt(i))<<4|hexString.indexOf(bytes.charAt(i+1))));
//將每3位(第3位為空格)中的前2位16進制整數組裝成一個位元組
for(inti=0;i<bytes.length();i+=3){
baos.write((hexString.indexOf(bytes.charAt(i))<<4|hexString.indexOf(bytes.charAt(i+1))));
}
returnnewString(baos.toByteArray());
}</span>

詳細

5. 求助,求大神,android與串口通信

轉載最近做的項目用到了藍牙串口通訊功能.畢竟是接觸到底層的一些東西,讓吾等局限於java編程思想的小菜遇到了一些意想不到的問題.

問題一,連接不上藍牙串口
直接在android自帶的藍牙例子上嘗試,發現根本連接不上藍牙串口,後來對比別人的代碼發現uuid不一樣.因為以前用過UUID.randomUUID();所以想當然的認為所有uuid都是隨機生成的.通過搜索發現,android連接藍牙串口的話,必須要這個UUID

UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

問題二,在讀取從藍牙串口返回的數據時,一直阻塞在inpustream.read(buffer);那裡.

起初是因為仿照網上的例子,直接發送指令的16進制字元串過去,返回不到數據.後來通過反編譯可以使用的藍牙串口助手apk發現,需要發送的不是16進制字元串的byte數組.而是將16進制字元串轉換成的byte數組.

String string = "01 00 05 07 00 00 00 00";
string = string.replaceAll(" ", ""); byte[] bytes = hexString2Bytes(string);//正確,要發送這個bytes
byte[] bytes = string.getBytes();//錯誤,發送這個bytes獲取不到數據.

附上hexString2Bytes方法

/**
* Convert hex string to byte[] 把為字元串轉化為位元組數組
*
* @param hexString
* the hex string
* @return byte[]
*/
public static byte[] hexStringToBytes(String hexString) {
hexString = hexString.replaceAll(" ", "");
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase(Locale.getDefault());
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}

/**
* Convert char to byte
*
* @param c
* char
* @return byte
*/
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}

得出結論.串口通訊時,如果獲取到錯誤的信息,是不返回數據的.在socket連接時.如果沒有獲取到數據.inputstream.read(buffer);是會一直阻塞的.

6. android里如何解析音頻文件獲取標題、專輯、文件名、藝術家

把文件放在res/raw下,程序運行時把它釋放到指定目錄,代碼如下:(供樓主參考)

private final String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/db_exam";
private final String DATABASE_FILENAME = "tel.db";

public void extractDBFileFromRes(){
try {
String dbFileName = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
if (!dir.exists()){
dir.mkdir();
Log.i("SQLite", "dir made:" + DATABASE_PATH);
} else {
Log.i("SQLite", "dir exist:" + DATABASE_PATH);
}

try {
//如果資料庫已經在SD卡的目錄下存在,那麼不需要重新創建,否則創建文件,並拷貝/res/raw下面的資料庫文件
if (!(new File(dbFileName).exists())){
Log.i("SQLite", dbFileName + ":file not exist");
//res/raw資料庫作為輸出流
InputStream inputStream = this.getResources().openRawResource(R.raw.tel);
//測試
int size = inputStream.available();
Log.i("SQLite", "DATABASE_SIZE:" + 1);
Log.i("SQLite", "count:" + 0);
//用於存放資料庫信息的數據流
FileOutputStream fileOutputStream = new FileOutputStream(dbFileName);
byte[] buffer = new byte[8192];
int count = 0;
Log.i("SQLite", "count:" + count);

//把數據寫入SD卡目錄下
while ((count = inputStream.read(buffer)) > 0 ) {
fileOutputStream.write(buffer, 0, count);
}
fileOutputStream.flush();
fileOutputStream.close();
inputStream.close();
}

} catch (FileNotFoundException e) {
Log.e("Database", "File not found");
e.printStackTrace();
}
} catch (IOException e) {
Log.e("Database", "IO exception");
e.printStackTrace();
}

}

7. Android手機端通過socket接收藍牙模塊串口發來的字元串,出現字元串被截斷現象,求解決辦法,萬分感謝!

在while循環外部的上方申明:
String sda="";

將while循環裡面的 String sda = new String(byte_data);
改為:sda+=new String(byte);

最後將while循環裡面的 System.out.println("收到的數據sda為:"+sda);
移到while循環外部的下方。

8. Android如何解決大循環中new語句或者某些方法引發的頻繁的GC_FOR_ALLOC耽誤很長時間

你嘗試把一些需要經常使用的變數定義到for循環外試試看 比如 byte[] content 這樣應該可以避免頻繁被回收

9. Android 怎樣用sqlite儲存byte數組

在進行Android開發過程中,我們經常會接觸到Drawable對象(官方開發文檔:A Drawable is a general abstraction for "something that can be drawn."),那麼,若要使用資料庫來進行存儲及讀取.

@Override
public void onCreate(SQLiteDatabase database) {
executeSQLScript(database, "create.sql");
}

private void executeSQLScript(SQLiteDatabase database, string dbname){
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte buf[] = new byte[1024];
int len;
AssetManager assetManager = context.getAssets();
InputStream inputStream = null;

try{
inputStream = assetManager.open(dbname);
while ((len = inputStream.read(buf)) != -1) {
outputStream.write(buf, 0, len);
}
outputStream.close();
inputStream.close();
String[] createScript = outputStream.toString().split(";");
for (int i = 0; i < createScript.length; i++) {
String sqlStatement = createScript[i].trim();
// TODO You may want to parse out comments here
if (sqlStatement.length() > 0) {
database.execSQL(sqlStatement + ";");
}
}
} catch (IOException e){
// TODO Handle Script Failed to Load
} catch (SQLException e) {
// TODO Handle Script Failed to Execute
}
}

10. WebService返回byte[],在Android怎麼才能接收byte[]啊,跪求大神

1、使用ISO 8859-1編碼將位元組數組轉為字元串;

android接收到之後使用byte[] receive = String.getBytes("ISO 8859-1");


2、還可以將位元組數組拼成字元串,用,符號隔開每個值。

Arrays.toString(byte[] b);可以將位元組數組轉成這種格式。

?

其實位元組也是數值型。


importjava.io.UnsupportedEncodingException;
importjava.util.Arrays;
importjava.util.Random;
publicclassMainClass{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODO自動生成的方法存根
byte[]rand=newbyte[256];
newRandom().nextBytes(rand);
Stringtranslation=null;
try{
translation=newString(rand,"ISO-8859-1");
}catch(UnsupportedEncodingExceptione){
//TODO自動生成的catch塊
e.printStackTrace();
}
System.out.println("要傳輸的內容:"+translation);
System.out.println("模擬傳輸過去...");
byte[]receive=null;
try{
receive=translation.getBytes("ISO-8859-1");
}catch(UnsupportedEncodingExceptione){
//TODO自動生成的catch塊
e.printStackTrace();
}
System.out.println("傳輸前後的內容是否相同:"+Arrays.equals(rand,receive));
}
}
閱讀全文

與androidnewbyte相關的資料

熱點內容
反詐騙app怎麼找回密碼 瀏覽:631
java方法和函數 瀏覽:420
程序員衣服穿反 瀏覽:959
java多類繼承 瀏覽:159
怎麼用多玩我的世界連接伺服器地址 瀏覽:483
為什麼華為手機比安卓流暢 瀏覽:177
javamap多線程 瀏覽:228
卡西歐app怎麼改時間 瀏覽:843
jquery壓縮圖片 瀏覽:970
用紙筒做解壓東西 瀏覽:238
神奇寶貝伺服器如何tp 瀏覽:244
雲伺服器支持退貨嗎 瀏覽:277
貸款等額本息演算法 瀏覽:190
根伺服器地址配置 瀏覽:501
單片機是軟體還是硬體 瀏覽:624
vivo手機怎麼看編譯編號 瀏覽:320
塑鋼扣條演算法 瀏覽:301
linux應用程序安裝 瀏覽:414
linux怎麼查找命令 瀏覽:431
安卓12原生和非原生是什麼意思 瀏覽:277