android耳机接口数据的读取

现在 要做一个硬件 发送音频频率!是插在耳机接口上的 现在的问题是怎么读取接口数据呢,尝试用录音机 但是最后发现 录音是从耳机麦克录取的 而传输数据 和这个 好像不是一回事 所以 还是要直接 读取 求大牛们 来解决问题!

4个回答

这也没有人回答么? 真的就没人做过这个么?? 求解啊

w635669114
w635669114 坑啊 就没人回答!!!
接近 6 年之前 回复
w635669114
w635669114 .....
接近 6 年之前 回复

这也没有人回答么? 真的就没人做过这个么?? 求解啊

我会做,这个不复杂。。。

这个解决了没啊?求问大神 我需要一份源码

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

Android蓝牙4.0读取数据问题

Android蓝牙4.0读取蓝牙设备电池电量的时候,如果电池电量或充电状态发生改变,硬件说需要开启notify,请问怎么开启呢?

Android socket通信,数据读取。

public class ChatRoom extends ActionBarActivity { protected TextView tv_chat_show; protected EditText ed_chat_input; protected Button btn_send; protected ActionBarActivity that; protected String receiverMsg; protected String sendStr; protected Socket socket; protected boolean flag; protected boolean isClicked; // 创建handle 对象处理接受数据 Handler myHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); tv_chat_show.append("server: " + msg.obj.toString() + "\n"); Log.i("show", msg.obj.toString()); } }; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.chat_room); tv_chat_show = (TextView) findViewById(R.id.tv_chat_show); ed_chat_input = (EditText) findViewById(R.id.ed_chat_input); btn_send = (Button) findViewById(R.id.btn_send); that= this; // 套接字是否存在标志 flag = false; // 按钮是否点击标志 isClicked = false; // 建立线程连接socket new Thread(){ @Override public void run() { super.run(); socket = new Socket(); try { socket.connect(new InetSocketAddress("10.1.11.38", 443), 5000); flag = true; } catch (IOException e) { e.printStackTrace(); } } }.start(); // 创建套接字发送线程 Thread threadSend = new Thread(){ @Override public void run() { super.run(); try { // 等待1秒确保套接字建立完成 Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } DataOutputStream dos; //套接字存在并且点击发送按钮 while(flag) { if(isClicked) { try { dos = new DataOutputStream(socket.getOutputStream()); dos.writeUTF(sendStr); isClicked = false; dos.close(); Toast.makeText(that,"发送" + sendStr,Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } } } } }; // 创建套接字接受线程 Thread threadRev = new Thread(){ @Override public void run() { super.run(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } DataInputStream dis; while(flag){ try { dis = new DataInputStream(socket.getInputStream()); receiverMsg = dis.readUTF(); Log.i("rev",receiverMsg); Message rM = new Message(); rM.obj = receiverMsg; myHandler.sendMessage(rM); dis.close(); }catch (IOException e){ e.printStackTrace(); } } } }; threadSend.start(); threadRev.start(); btn_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { sendStr = ed_chat_input.getText().toString().trim(); ed_chat_input.setText(null); tv_chat_show.append("Client: " + sendStr + "\n"); Log.i("isClicked", "点击"); isClicked = true; } }); } } 测试Log.i("rev",receiverMsg);能够接收到服务器传回来的消息,但是点击发送后软件会崩溃,提示 unfortunately,**** is stoped; Android studio报错信息: 12-22 10:57:34.290 17263-17797/com.teemo.oneteemo E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-931 Process: com.teemo.oneteemo, PID: 17263 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:200) at android.os.Handler.<init>(Handler.java:114) at android.widget.Toast$TN.<init>(Toast.java:342) at android.widget.Toast.<init>(Toast.java:99) at android.widget.Toast.makeText(Toast.java:248) at com.teemo.oneteemo.ChatRoom$3.run(ChatRoom.java:109)

android 多个串口读取数据时有的能读取有的不能读取

//读串口数据线程 private class ReadThread extends Thread { @Override public void run() { super.run(); while (!isStop && !isInterrupted()) { try { readMethod(mSerialPort0, 0); readMethod(mSerialPort1, 1); readMethod(mSerialPort2, 2); } catch (Exception e) { } } } } private void readMethod(SerialPort serialPort, int index) throws IOException, InterruptedException { if (serialPort != null) { byte[] buffer = new byte[512]; int size = serialPort.getInputStream().read(buffer); if (size > 1) onDataReceived(buffer, size, index); Thread.sleep(25); } } 当只有一个串口时都能正确读数,有多个串口对象时就只有一个能用,另外的怎么试都不能使用,串口都成功初始化,使用时也错开了时间,是不是每个串口都要有一个独立的读取线程?我觉得不需要啊,求大神指点

Android调用接口出现的不返回数据问题

使用Android网络请求框架Android-asyn-http请求一个接口,请求10次左右会出现一次后台返回数据但前端接收不到的情况,不走onSuccess,也不走onFail(),怎么回事呢

android 串口通信读取数据

串口读数据时,size= mInputStream.read(buffer),执行到这一步就不往下执行了,求解!

android studiod 从数据库读取数据失败

从数据库读取数据到listview,但是不知为什么,在没添加数据进数据库的时候,能进activity,但是一旦添加进去以后就开始报错了 DBhelper.java public class DBHelper extends SQLiteOpenHelper{ private final static String DATABASE_NAME = "demo.db"; private final static int DATABASE_VERSION = 1; private final static String TABLE_NAME = "request_list"; public final static String REQUEST_ID = "request_id"; public final static String REPORTER_NAME = "reporter_name"; public final static String S_DESCRIPTION = "s_description"; public final static String L_DESCRIPTION = "l_description"; public final static String DEPARTMENT = "department"; public final static String CATEGORY = "category"; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); Log.e("Database operations", "Database created/opened"); } @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLE_NAME + " (" + REQUEST_ID + " INTEGER primary key autoincrement, " + "" + REPORTER_NAME + " text, " + "" + S_DESCRIPTION + " text, " + "" + L_DESCRIPTION + " text, " + "" + DEPARTMENT + " text, " + "" + CATEGORY + " text);"; db.execSQL(sql); Log.e("Database operations", "Table created/opened"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS " + TABLE_NAME; db.execSQL(sql); onCreate(db); } public Cursor select() { SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db .query(TABLE_NAME, null, null, null, null, null, null); return cursor; } public Cursor getInformation(SQLiteDatabase db) { Cursor cursor; String[] projection = {REPORTER_NAME,S_DESCRIPTION,L_DESCRIPTION,DEPARTMENT,CATEGORY}; cursor=db.query(TABLE_NAME,projection,null,null,null,null,null,null); return cursor; } //增加操作 public long insert(String s_description,String name,String department, String category,String l_description) { SQLiteDatabase db = this.getWritableDatabase(); /* ContentValues */ ContentValues cv = new ContentValues(); cv.put(S_DESCRIPTION, s_description); cv.put(L_DESCRIPTION,l_description); cv.put(REPORTER_NAME,name); cv.put(DEPARTMENT,department); cv.put(CATEGORY,category); long row = db.insert(TABLE_NAME, null, cv); return row; } //删除操作 public void delete(int id) { SQLiteDatabase db = this.getWritableDatabase(); String where = REQUEST_ID + " = ?"; String[] whereValue ={ Integer.toString(id) }; db.delete(TABLE_NAME, where, whereValue); } //修改操作 public void update(int id, String s_description,String name,String department, String category,String l_description) { SQLiteDatabase db = this.getWritableDatabase(); String where = REQUEST_ID + " = ?"; String[] whereValue = { Integer.toString(id) }; ContentValues cv = new ContentValues(); cv.put(S_DESCRIPTION, s_description); cv.put(L_DESCRIPTION,l_description); cv.put(REPORTER_NAME,name); cv.put(DEPARTMENT,department); cv.put(CATEGORY,category); db.update(TABLE_NAME, cv, where, whereValue); } } DataListActivity.java public class DataListActivity extends ActionBarActivity { ListView listView; SQLiteDatabase sqLiteDatabase; DBHelper dbHelper; Cursor cursor; ListDataAdapter listDataAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.data_list_layout); listView = (ListView) findViewById(R.id.list_view); listDataAdapter = new ListDataAdapter(getApplicationContext(),R.layout.reporter_my_request); listView.setAdapter(listDataAdapter); dbHelper = new DBHelper(getApplicationContext()); sqLiteDatabase = dbHelper.getReadableDatabase(); cursor = dbHelper.getInformation(sqLiteDatabase); if(cursor.moveToFirst()) { do { String name,title,department,category,description; name = cursor.getString(0); title= cursor.getString(1); department=cursor.getString(2); category=cursor.getString(3); description=cursor.getString(4); DataProvider dataProvider=new DataProvider(name,title,department,category,description); listDataAdapter.add(dataProvider); }while (cursor.moveToNext()); } dbHelper.close(); } } DataProvider.java public class DataProvider { private String name; private String title; private String department; private String category; private String description; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public DataProvider(String name,String title,String department,String category,String description){ this.name= name; this.title = title; this.department= department; this.category= category; this.description = description; } } ListDataAdapter.java public class ListDataAdapter extends ArrayAdapter { List list = new ArrayList(); public ListDataAdapter(Context context, int resource) { super(context, resource); } static class LayoutHandler{ TextView NAME,TITLE,DEPARTMENT,CATEGORY,DESCRIPTION; } @Override public void add(Object object) { super.add(object); list.add(object); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; LayoutHandler layoutHandler; if(row == null){ LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); row = layoutInflater.inflate(R.layout.reporter_my_request,parent,false); layoutHandler = new LayoutHandler(); layoutHandler.NAME = (TextView)row.findViewById(R.id.text_name); layoutHandler.TITLE = (TextView)row.findViewById(R.id.text_title); layoutHandler.DEPARTMENT = (TextView)row.findViewById(R.id.text_department); layoutHandler.CATEGORY = (TextView)row.findViewById(R.id.text_category); row.setTag(layoutHandler); } else { layoutHandler = (LayoutHandler)row.getTag(); } DataProvider dataProvider = (DataProvider)this.getItem(position); layoutHandler.NAME.setText(dataProvider.getName()); layoutHandler.TITLE.setText(dataProvider.getTitle()); layoutHandler.DEPARTMENT.setText(dataProvider.getDepartment()); layoutHandler.CATEGORY.setText(dataProvider.getCategory()); layoutHandler.DESCRIPTION.setText(dataProvider.getDescription()); return row; } }

android 串口通信读取数据,处理问题?求大神帮忙

下面这段代码是我接收串口数据的 private class ReadThread extends Thread { @Override public void run() { super.run(); while (!isInterrupted()) { int size; try { byte[] buffer = new byte[30]; if (mInputStream == null) return; mInputStream.read(buffer); //根据数据协议规则,判断每条数据的长度 size=Integer.parseInt(Integer.toHexString(buffer[2]))+3; if (size > 3) { onDataReceived(buffer, size); //调用更新UI方法 } } catch (IOException e) { e.printStackTrace(); return; } } } } 下来的截图是我处理UI的。 void onDataReceived(final byte[] buffer, final int size) { // TODO Auto-generated method stub MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub String reString=""; if (mReception!=null) { for (int i = 0; i <size; i++) { String hexString=Integer.toHexString(buffer[i]&0xFF); if (hexString.length()==1) { hexString='0'+hexString; } reString+=hexString.toUpperCase(); } mReception.append(reString+"\r\n"); Toast.makeText(getApplicationContext(), "接收成功"+reString, Toast.LENGTH_SHORT).show(); Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); MainActivity.this.finish(); } } }); } 我现在的问题是,当我跳转页面,并关闭当前页面之后,我在新的页面在接收一条数据时,这条数据会让原页面给拦截接收,并再次把跳转页面执行了一遍(就是把新页面打开了两次),之后在发数据,它就可以正常在跳转之后的页面接收了。 为什么啊? 是我那么有加判断,还是我写的代码,跟线程不符 其中要根据接收的消息来更新ui,或跳转页面

android socket通信读取图片数据,数据出错

我从电脑服务端用imageIO发送了屏幕的截图给android,android端发现如果每次读取 的数据大小超过20K,所得的数据就会出错,我对比了下发送前的图片数据,基本上是 夹杂了很多1K以上的0数据块,又或者是数据块错位。但是一旦把每次读取的数据大小降 低至10K以下又或者增加两次读取间的间隔至500ms以上就能保持数据不出错,这是为什 么呢?

Android文件读取问题,读取不到电脑硬盘中的文件

我在Android项目中读取电脑D盘中的文件,D盘中文件存在,New File的时候文件找不到呢,我建了个java项目可以找到,是不是Android项目中不能读取电脑硬盘中的文件啊?

python进行接口自动化测试,我把接口数据放到excel里面应该如何用python读取出来

最近在做接口自动化测试,之前我用过的是python+unittest,但是之前的接口数据我放到了ini配置文件里面,然后封装了一个类,去读取ini文件里面的数据,现在我想把接口数据拿出来放到excel表中,但是我不知道该怎么数据拿出来,哪位大神可以指教一下,谢谢了![图片说明](https://img-ask.csdn.net/upload/201812/21/1545368415_637325.png)

Android画图表怎么读取数据

**安卓可以用AChartEngine画各种图表,比如折线图、饼图、柱状图等,但是网上找到的程序都是直接把数据写到程序里,如何能够模块化,使得程度能够读取数据,直接画出饼图或柱状图,求高人指点???!!!**

Android中使用NFC读取NfcA类型的芯片,Apdu指令怎么获取?

Android中使用NFC读取NfcA类型的芯片,Apdu指令怎么获取?就是 byte[] response = mNfc.transceive(cmd);中的这个cmd命令!

android通过socket通信实现客户端读取服务端的二进制数据,并展示在textview控件上

客户端通过socket通信,完成读取服务端的二进制数据读取,并将数据显示在textview控件上,数据全为整型

Android studio 如何实现数据保存

你好!本人是Android studio编程初学者 ,最近自己尝试在做一个APP,已经可以实时 显示我希望得到的数据了,但是我想将希望得到的实时显示的数据保存下来,保存到文件 中就行,这是代码: package com.gdy.filepersistencetest; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Environment; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class MainActivity extends Activity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText)findViewById(R.id.edit); } @Override protected void onDestroy(){ super.onDestroy(); String inputText = edit.getText().toString(); saveToSDCard("wxhn",inputText); } // save infomation in the SDCard public boolean saveToSDCard(String fileName, String content) { // judge weather the SDCard exits,and can be read and written if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return false; } FileOutputStream fileOutputStream = null; File file = new File(Environment.getExternalStorageDirectory(), fileName); try { fileOutputStream = new FileOutputStream(file); fileOutputStream.write(content.getBytes()); return true; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fileOutputStream != null) { fileOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } return false; } } 可是当我将APP安装到手机上,找不到我保存的数据,不知道是不是没保存还是我没找到,请大神指导!!

android 从socket中读取数据转换bitmap为空

用蓝牙传的,这是客户端用摄像头预览的数据 ![图片说明](https://img-ask.csdn.net/upload/201603/21/1458569881_102832.jpg) 这是传数据的方法 ![图片说明](https://img-ask.csdn.net/upload/201603/21/1458570448_145774.jpg) 这是服务端接收数据 ![图片说明](https://img-ask.csdn.net/upload/201603/21/1458570493_314065.jpg) 日志上显示 D/skia: --- SkImageDecoder::Factory returned null 打印接收到的数据byte[] b时显示一排竖方框,这应该是乱码或者是空吧,是编码格式的问题?

Android如何获得蓝牙耳机的音频输入?

想要获得蓝牙耳机的音频数据并处理,Android如何获得蓝牙耳机的音频输入?

android 怎么读取其他进程的内存

android 有木有像windows 平台 那样的 ReadProcessMemery WriteProcessMemery这样的函数,可以直接读取其他进程内存的 api哇 看了几个实现方式 都好难啊 初学android 有木有教一下 怎么样 实现android平台的跨进程读取内存 ,hook等技术哇 感激不尽!

android studio读写excel数据

1.有一份excel的数据,如下: 姓名 年龄 专业 张三 18 挖掘机 李四 20 搓澡工 2.用Android Studio写一个小程序读取excel表中的数据,并存入数据库。 3.实现用Android Studio对数据库的增,删,改,查功能。 4.本人是小白,麻烦把程序的每个细节都写清楚。 以上,谢谢

c# webServer的api接口怎么获取android提交数据

c# asp.net的webServer怎么获取android模拟from表单提交的数据,,,,,,,

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# cad插入影像 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园
立即提问