Name an application to stream audio (from files and/or mic) from pc to multiple android devices

I was working on a project to make mini radio for kids. We will be in a place with no service so streaming audio over internet is not an option. So I brought 3 routers and connected them together and I want to stream audio from my pc over the wifi network. in short I need the receivers to type an IP in the application to receive my stream.

p.s. I found a great app called soundwire, it does stream audio from an app on pc over the LAN to android devices; however, it can stream to only one device. I need to stream to more than 35 devices.

Xbox 360 wired controller isn’t recognized in Android 6.0 (BQ Aquaris M10)

This weekend I decided to add the keylayout for an Xbox 360 wired to be able to use it on Android, because now it just only blinks when I connect it.

I searched in the site about other people that could have the same problem (because the tutorial in the internet about only plugin the OTG cable in, and that’s not how things go normally), but neither of then could illuminate me.

So far:

  • OTG cable just works fine (I used a pendrive of some years ago, so…)
  • The Xbox 360 wired controller is just a normal one like this (also, it is about 5V and 400mA, maybe the tablet cannot give that much power support?)
  • I created the required vendor files (Vendor_045e_Product_0719.kl, Vendor_045e_Product_0291.kl, Vendor_045e_Product_028e.kl and Vendor_046d_Product_c219.kl are the names I finded so far), setted its permissions (644) and restarted the tablet. The content is the same in all of them:


# Copyright (C) 2011 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.  # # XBox 360 USB Controller #  key 304   BUTTON_A key 305   BUTTON_B key 307   BUTTON_X key 308   BUTTON_Y key 310   BUTTON_L1 key 311   BUTTON_R1 key 314   BUTTON_SELECT key 315   BUTTON_START key 316   BUTTON_MODE key 317   BUTTON_THUMBL key 318   BUTTON_THUMBR  # Left and right stick. # The reported value for flat is 128 out of a range from -32767 to 32768, which is absurd. # This confuses applications that rely on the flat value because the joystick actually # settles in a flat range of +/- 4096 or so. axis 0x00 X flat 4096 axis 0x01 Y flat 4096 axis 0x03 Z flat 4096 axis 0x04 RZ flat 4096  # Triggers. axis 0x02 LTRIGGER axis 0x05 RTRIGGER  # Hat. axis 0x10 HAT_X axis 0x11 HAT_Y 


So I decided to see what the log was saying. I did a logcat and then…

u0_a81@Aquaris_M10:/ # cat /sdcard/my-log-file.txt | grep Microsoft 01-20 16:03:04.340   731  1018 D UsbAlsaManager: deviceRemoved(): Microsoft Corporation Controller 01-20 16:03:07.971   731  1018 D UsbHostManager: Added device UsbDevice[mName=/dev/bus/usb/001/005,mVendorId=1118,mProductId=654,mClass=255,mSubclass=255,mProtocol=255,mManufacturerName=Microsoft Corporation,mProductName=Controller,mVersion=2.0,mSerialNumber=15E8D53,mConfigurations=[ 01-20 16:03:07.971   731  1018 D UsbHostManager: UsbInterface[mId=3,mAlternateSetting=0,mName=Xbox Security Method 3, Version 1.00,  2005 Microsoft Corporation. All rights reserved.,mClass=255,mSubclass=253,mProtocol=19,mEndpoints=[]]] 01-20 16:03:07.993   731  1018 D UsbAlsaManager: deviceAdded(): Microsoft Corporationnm:Controller 01-20 16:03:33.424   731  1018 D UsbAlsaManager: deviceRemoved(): Microsoft Corporation Controller 01-20 16:03:36.930   731  1018 D UsbHostManager: Added device UsbDevice[mName=/dev/bus/usb/001/006,mVendorId=1118,mProductId=654,mClass=255,mSubclass=255,mProtocol=255,mManufacturerName=Microsoft Corporation,mProductName=Controller,mVersion=2.0,mSerialNumber=15E8D53,mConfigurations=[ 01-20 16:03:36.930   731  1018 D UsbHostManager: UsbInterface[mId=3,mAlternateSetting=0,mName=Xbox Security Method 3, Version 1.00,  2005 Microsoft Corporation. All rights reserved.,mClass=255,mSubclass=253,mProtocol=19,mEndpoints=[]]] 01-20 16:03:36.951   731  1018 D UsbAlsaManager: deviceAdded(): Microsoft Corporationnm:Controller u0_a81@Aquaris_M10:/ # 

There you can see that the vendor and product IDs are different (1118 and 654 respectively), so I tried to make another vendor file (Vendor_1118_Product_654.kl), setted its permissions, and restarted. But keeps the same. It is supossed to let you navigate over it, selecting apps and also, but nothing. I also tried playing Asphalt Nitro (looks like those are some of the games with support for controllers) with no luck.

It’s my first time into Android, and so far all good tutorials just say to copy those vendor files, set their permissions, and then restart. But for me it isn’t working.

My Android’s version is 6.0. I don’t know if you need the kernel’ and compilation number, but tell me.

Android viruses infected my phone (Tecno)

My phone has been infected with viruses for nearly a year. At first it was just a virus in disguise called ‘settings’, but then it spread to my Chrome, opening a site called ‘’ SmartSite. I had to disable Chrome, and now there are 3 other viruses on my phone: One called Magic, which pops up ads on my phone screen, Lake worth ISD or something, Then one called System with the note saying ‘Guerilla exe.’ I use Eset Mobile Security to remove them, but every time I get access to internet, they get installed again. Sometimes they get installed even if I don’t have network connection.

Someone please help!

Professional Android development and design for $60

Sir we are a team and having experience of six years and expects in Android development and design and hope me my work is fully satisfied trust me sir thank youSir we are a team and having experience of six years and expects in website development and design and hope me my work is fully satisfied trust me sir thank you

by: Narahari66
Created: —
Category: Programming
Viewed: 135

Exibir horário de funcionamento (aberto/fechado) no android

Quero comparar as horas (Aberto Agora / Fechado Agora). Mas não estou conseguindo.

Quando aberto, queria exibir um TOAST “estamos funcionando”, quando fechado, queria exibir um TOAST “não estamos funcionando”.

Alguém poderia me ajudar?

Segue abaixo o código:

public class PrincipalActivity extends AppCompatActivity         implements NavigationView.OnNavigationItemSelectedListener {      private FirebaseAuth autenticacao;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_principal);         Toolbar toolbar = findViewById(;         toolbar.setTitle("aplicativo teste");         setSupportActionBar(toolbar);                 FloatingActionButton fab = (FloatingActionButton) findViewById(;         fab.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)                         .setAction("Action", null).show();             }         });          DrawerLayout drawer = (DrawerLayout) findViewById(;         ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(                 this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);         drawer.addDrawerListener(toggle);         toggle.syncState();          NavigationView navigationView = (NavigationView) findViewById(;         navigationView.setItemIconTintList(null);         navigationView.setNavigationItemSelectedListener(this);      }      @Override     public void onBackPressed() {         DrawerLayout drawer = (DrawerLayout) findViewById(;         if (drawer.isDrawerOpen(GravityCompat.START)) {             drawer.closeDrawer(GravityCompat.START);         } else {             super.onBackPressed();         }     }      @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(, menu);         return true;     }      @Override     public boolean onOptionsItemSelected(MenuItem item) {         switch (item.getItemId()){             case :                 startActivity(new Intent(this, PagamentosActivity.class));                 break;             case :                 autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();                 autenticacao.signOut();                 startActivity(new Intent(this, LoginActivity.class));                 finish();                 break;         }         return super.onOptionsItemSelected(item);     }      @SuppressWarnings("StatementWithEmptyBody")     @Override     public boolean onNavigationItemSelected(MenuItem item) {         // Handle navigation view item clicks here.         int id = item.getItemId();          if (id == {          } else if (id == {          } else if (id == {          } else if (id == {             exibirHorario();         } else if (id == {             avaliarApp();         } else if (id == {             compartilharApp();         } else if (id == {             enviarEmail();         }          DrawerLayout drawer = (DrawerLayout) findViewById(;         drawer.closeDrawer(GravityCompat.START);         return true;     }      //Enviar email     public void enviarEmail(){          Intent email = new Intent(Intent.ACTION_SEND);         email.putExtra(Intent.EXTRA_EMAIL, new String[]{""});         email.putExtra(Intent.EXTRA_SUBJECT, "Contato");         email.putExtra(Intent.EXTRA_TEXT, "Digite sua mensagem aqui");          email.setType("message/rfc822");          startActivity(Intent.createChooser(email, "Enviar e-mail com:"));     }      //Compartilhar aplicativo     public void compartilharApp(){          Intent compartilhar = new Intent(Intent.ACTION_SEND);         compartilhar.putExtra(Intent.EXTRA_TEXT, "Usei este APP e lembrei de você.");          compartilhar.setType("text/plain");          startActivity(Intent.createChooser(compartilhar, "Compartilhar com:"));     }      //Avaliar aplicativo     public void avaliarApp(){         try {             startActivity(new Intent(Intent.ACTION_VIEW,                     Uri.parse("market://details?id=" + getPackageName())));         }catch (ActivityNotFoundException e) {             startActivity(new Intent(Intent.ACTION_VIEW,                     Uri.parse("" + getPackageName())));         }     }      //Horario de funcionamento     public void exibirHorario(){         AlertDialog.Builder dialog = new AlertDialog.Builder(this);         dialog.setTitle("Horário de funcionamento");         dialog.setMessage("Seg. a Qui. -> 17h - 22h\nSex. e Sáb. -> 17h - 00h");         dialog.setCancelable(false);         dialog.setNeutralButton("Fechar", new DialogInterface.OnClickListener() {             @Override             public void onClick(DialogInterface dialog, int i) {                 dialog.dismiss();             }         });          dialog.create();;      }  } 

Which android smartphones have linux mainline kernel support?

I am aware that Android uses LTS versions of the linux kernel, or often even worse (e.g. practically closed source cherry picked custom manufactor kernels).

It is however at least possible (considering the GPLv2 license requirements), that some android phones have been made to work with a mainline kernel. If so, this questions seeks to know: which phones are that that support linux mainline kernel?

Furthermore it would be even better if an answer would be able to provide or point to a list of devices, or a method/ location that allows finding out if a device (or merely SOC) provides that support.

It seems there are signs that suggest there might be mainline support, encouraging this inquery:

  • Raspberry Pi Zero & LG Nexus 5 supported on Linux 4.9

Google Nexus 6P Released in third quarted 2015 (about 3 years ago is still running a 2013 3.10 LTS kernel, not anymore maintained since Nov.2017. Meaning due to lack of mainline only about 2 years after release the Nexus 6P (angler) was obsoleted)

¿Como eliminar objeto de un arrayList Java Android RecyclerView?

El problema esta en que tengo una lista con objeto y quiero objeterlos con su cantidad asignada pero intento usar el remove(objeto) y no hace nada.

public class ViewHolder extends RecyclerView.ViewHolder { Button nombre, btnCantidad; ImageButton btnMas, btnMenos;

    public ViewHolder(View itemView) {         super(itemView);          nombre = (Button)itemView.findViewById(;         btnMas = (ImageButton)itemView.findViewById(;         btnMenos = (ImageButton)itemView.findViewById(;         btnCantidad = (Button)itemView.findViewById(;     } }  @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {     View view = LayoutInflater.from(parent.getContext())             .inflate(R.layout.despacho_item, parent, false);      view.setOnClickListener(this);      return new ViewHolder(view); }  @Override public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {     final Articulo item = list.get(position);      listDespacho.clear();      for (int x=0; x < list.size(); x++){         listDespacho.add(new Despacho_info(1, list.get(x).getId(), 0));     }      final List<Despacho_info> despacho_infoList = listDespacho;      holder.nombre.setText(String.valueOf(item.getNombre()));      //-----------AUMENTA LA CANTIDA     holder.btnMas.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             int cantidadVender = Integer.parseInt(holder.btnCantidad.getText().toString());             holder.btnCantidad.setText(String.valueOf(cantidadVender+1));              despacho_infoList.remove(new Despacho_info(1, 1, 0));              Iterator<Despacho_info> iteratorBand = despacho_infoList.iterator();              while(iteratorBand.hasNext()){                 if(despacho_infoList.contains(new Despacho_info(1,1,0))){                     iteratorBand.remove();                 }             }         }     });      //---------DISMINUYE LA CANTIDAD     holder.btnMenos.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             int cantidadActual = Integer.valueOf(holder.btnCantidad.getText().toString());             if (cantidadActual!=0){                 holder.btnCantidad.setText(String.valueOf(cantidadActual - 1));             }           }     });      setListDespacho(despacho_infoList);      //-------------ABRE DIALOGO PARA INTRODUCIR LA CANTIDAD     holder.btnCantidad.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {              LayoutInflater inflater = LayoutInflater.from(activity);             final View view = inflater.inflate(R.layout.dialogo_cantidad, null);              AlertDialog.Builder builder = new AlertDialog.Builder(activity);             builder.setView(view);              final Button btn = (Button)view.findViewById(;             final EditText txt = (EditText)view.findViewById(;             txt.setFocusable(true);              builder.setCancelable(true);             final AlertDialog alert = builder.create();              alert.getWindow().setGravity(Gravity.CENTER);             alert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));   ;              btn.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                     alert.cancel();                     Toast.makeText(activity, "Alerta Cerrada", Toast.LENGTH_SHORT).show();                     holder.btnCantidad.setText( txt.getText() );                 }             });         }     });  }  @Override public int getItemCount() {     return list.size(); }  public List<Despacho_info> getListDespacho() {     return listDespacho; }  public void setListDespacho(List<Despacho_info> listDespacho) {     this.listDespacho = listDespacho; }  public void setOnClickListener(View.OnClickListener listener){     this.listener = listener; } 


How can i reset my Gmail password from inbuilt Google settings of android if 2FA is enabled? [on hold]

I’ve recently changed my gmail password and now i forgot password before this time i was able to reset it by OTP that Google sent to my number for verification but this time i enabled 2FA and Google asking some more steps to verify like when is my account was created.

I submitted all the things together with an email address to reach me but at the last it shows ‘Google couldn’t verify it’s you’.

Please, Is there any solution and steps where i can change this in my Google App for android ?

My account don’t have any recovery email, it includes only phone number for verification.