Можно ли подключить проект Arduino в студии Android? У меня есть Arduino Uno 3 и компактный оптический датчик пыли GP2Y1014AU0F. У меня проблема, я думаю, реализация ("com.github.mik3y:usb-serial-for-android:3.7.3") не работает? Поскольку в моем фрагменте есть ошибка, она
Не удалось найти com.hoho.android:usb-serial-for-android:3.3.0.
хотя это уже реализовано.
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.github.anastr.speedviewlib.SpeedView;
import com.hoho.android.usbserial.driver.UsbSerialDriver;
import com.hoho.android.usbserial.driver.UsbSerialPort;
import com.hoho.android.usbserial.driver.UsbSerialProber;
import java.io.IOException;
public class CurrentFragment extends Fragment {
private static final String ACTION_USB_PERMISSION = "com.example.USB_PERMISSION";
UsbManager usbManager;
UsbDevice device;
UsbSerialPort port;
SpeedView speedView;
TextView textView;
public CurrentFragment() {
// Required empty public constructor
}
public static CurrentFragment newInstance(String param1, String param2) {
CurrentFragment fragment = new CurrentFragment();
Bundle args = new Bundle();
args.putString("param1", param1);
args.putString("param2", param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
// Get parameters if needed
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_current, container, false);
speedView = view.findViewById(R.id.speedView);
textView = view.findViewById(R.id.textView);
Button acuteButton = view.findViewById(R.id.acute);
Button goodButton = view.findViewById(R.id.good);
Button unhealthButton = view.findViewById(R.id.unhealthy);
Button emergencyButton = view.findViewById(R.id.emergency);
Button veryunhealthyButton = view.findViewById(R.id.veryunhealthy);
Button fairButton = view.findViewById(R.id.fair);
acuteButton.setAlpha(0f);
goodButton.setAlpha(0f);
unhealthButton.setAlpha(0f);
emergencyButton.setAlpha(0f);
veryunhealthyButton.setAlpha(0f);
fairButton.setAlpha(0f);
acuteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new AcuteFragment());
}
});
goodButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new GoodFragment());
}
});
unhealthButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new UnhealthyFragment());
}
});
emergencyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new CurrentFragment());
}
});
veryunhealthyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new VeryUnhealthyFragment());
}
});
fairButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new FairFragment());
}
});
usbManager = (UsbManager) getActivity().getSystemService(Context.USB_SERVICE);
PendingIntent permissionIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
getActivity().registerReceiver(usbReceiver, filter);
for (UsbDevice device : usbManager.getDeviceList().values()) {
usbManager.requestPermission(device, permissionIntent);
}
return view;
}
private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)) {
synchronized (this) {
device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
if (device != null) {
UsbDeviceConnection connection = usbManager.openDevice(device);
UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device);
if (driver != null) {
port = driver.getPorts().get(0);
try {
port.open(connection);
port.setParameters(9600, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);
Log.d("USB", "Port opened and configured");
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
byte[] buffer = new byte[16];
int numBytesRead = port.read(buffer, 1000);
final String data = new String(buffer, 0, numBytesRead);
Log.d("USB", "Data read: " + data);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
updateUI(data);
}
});
} catch (IOException e) {
Log.e("USB", "IOException: " + e.getMessage());
e.printStackTrace();
break;
}
}
}
}).start();
} catch (IOException e) {
Log.e("USB", "Port open failed: " + e.getMessage());
e.printStackTrace();
}
} else {
Log.e("USB", "Driver is null");
}
}
}
}
}
}
};
private void updateUI(String data) {
try {
float dustDensity = Float.parseFloat(data.trim().split(" ")[2]);
speedView.speedTo(dustDensity);
textView.setText("Dust Density: " + dustDensity + " ug/m3");
if (dustDensity
Подробнее здесь: https://stackoverflow.com/questions/786 ... oid-studio
Подключение Arduino к Android Studio ⇐ Android
Форум для тех, кто программирует под Android
1719827075
Anonymous
Можно ли подключить проект Arduino в студии Android? У меня есть Arduino Uno 3 и компактный оптический датчик пыли GP2Y1014AU0F. У меня проблема, я думаю, реализация ("com.github.mik3y:usb-serial-for-android:3.7.3") не работает? Поскольку в моем фрагменте есть ошибка, она
Не удалось найти com.hoho.android:usb-serial-for-android:3.3.0.
хотя это уже реализовано.
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.github.anastr.speedviewlib.SpeedView;
import com.hoho.android.usbserial.driver.UsbSerialDriver;
import com.hoho.android.usbserial.driver.UsbSerialPort;
import com.hoho.android.usbserial.driver.UsbSerialProber;
import java.io.IOException;
public class CurrentFragment extends Fragment {
private static final String ACTION_USB_PERMISSION = "com.example.USB_PERMISSION";
UsbManager usbManager;
UsbDevice device;
UsbSerialPort port;
SpeedView speedView;
TextView textView;
public CurrentFragment() {
// Required empty public constructor
}
public static CurrentFragment newInstance(String param1, String param2) {
CurrentFragment fragment = new CurrentFragment();
Bundle args = new Bundle();
args.putString("param1", param1);
args.putString("param2", param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
// Get parameters if needed
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_current, container, false);
speedView = view.findViewById(R.id.speedView);
textView = view.findViewById(R.id.textView);
Button acuteButton = view.findViewById(R.id.acute);
Button goodButton = view.findViewById(R.id.good);
Button unhealthButton = view.findViewById(R.id.unhealthy);
Button emergencyButton = view.findViewById(R.id.emergency);
Button veryunhealthyButton = view.findViewById(R.id.veryunhealthy);
Button fairButton = view.findViewById(R.id.fair);
acuteButton.setAlpha(0f);
goodButton.setAlpha(0f);
unhealthButton.setAlpha(0f);
emergencyButton.setAlpha(0f);
veryunhealthyButton.setAlpha(0f);
fairButton.setAlpha(0f);
acuteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new AcuteFragment());
}
});
goodButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new GoodFragment());
}
});
unhealthButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new UnhealthyFragment());
}
});
emergencyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new CurrentFragment());
}
});
veryunhealthyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new VeryUnhealthyFragment());
}
});
fairButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new FairFragment());
}
});
usbManager = (UsbManager) getActivity().getSystemService(Context.USB_SERVICE);
PendingIntent permissionIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
getActivity().registerReceiver(usbReceiver, filter);
for (UsbDevice device : usbManager.getDeviceList().values()) {
usbManager.requestPermission(device, permissionIntent);
}
return view;
}
private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)) {
synchronized (this) {
device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
if (device != null) {
UsbDeviceConnection connection = usbManager.openDevice(device);
UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device);
if (driver != null) {
port = driver.getPorts().get(0);
try {
port.open(connection);
port.setParameters(9600, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);
Log.d("USB", "Port opened and configured");
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
byte[] buffer = new byte[16];
int numBytesRead = port.read(buffer, 1000);
final String data = new String(buffer, 0, numBytesRead);
Log.d("USB", "Data read: " + data);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
updateUI(data);
}
});
} catch (IOException e) {
Log.e("USB", "IOException: " + e.getMessage());
e.printStackTrace();
break;
}
}
}
}).start();
} catch (IOException e) {
Log.e("USB", "Port open failed: " + e.getMessage());
e.printStackTrace();
}
} else {
Log.e("USB", "Driver is null");
}
}
}
}
}
}
};
private void updateUI(String data) {
try {
float dustDensity = Float.parseFloat(data.trim().split(" ")[2]);
speedView.speedTo(dustDensity);
textView.setText("Dust Density: " + dustDensity + " ug/m3");
if (dustDensity
Подробнее здесь: [url]https://stackoverflow.com/questions/78690857/connecting-arduino-to-android-studio[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия