Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''android''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 136 registros

  1. OláEstou tendo um problema ao compilar uma biblioteca no Android Studio pelo NDK Quando executo o comando ndk-build, um problema é lançado: Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-19. Android NDK: WARNING: APP_PLATFORM android-19 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-19. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_p roblems.md for more information. [arm64-v8a] Compile : FerrugemLib <= FerrugemLib.c In file included from jni/FerrugemLib.c:15: In file included from jni\CL/cl.h:32: jni\CL/cl_version.h:34:9: warning: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2) [-W#pragma-messages] #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") ^ jni/FerrugemLib.c:346:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:535:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:733:25: warning: 'clCreateCommandQueue' is deprecated [-Wdeprecated-declarations] openCLObjects->queue = clCreateCommandQueue(openCLObjects->context, openCLObjects->device, 0, &err); ^ jni\CL/cl.h:1760:72: note: 'clCreateCommandQueue' has been explicitly marked deprecated here cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; ^ jni\CL/cl_platform.h:91:70: note: expanded from macro 'CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED' #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated)) ^ jni/FerrugemLib.c:839:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:944:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:1977:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:2034:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ 8 warnings generated. [arm64-v8a] SharedLibrary : libFerrugemLib.so C:/Android/Sdk/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot find OpenCL: No such file or directory clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [obj/local/arm64-v8a/libFerrugemLib.so] Error 1 Meu Android.mkLOCAL_PATH := $(call my-dir)LOCAL_C_INCLUDES += PATH_TO_CL_FOLDER include $(CLEAR_VARS) LOCAL_MODULE := decodeYUV420SP LOCAL_SRC_FILES := decodeYUV420SP.c LOCAL_LDLIBS := -llog -ljnigraphics include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := FerrugemLib LOCAL_SRC_FILES := FerrugemLib.c LOCAL_LDLIBS := -lOpenCL LOCAL_LDLIBS += -llog -ljnigraphics LOCAL_ALLOW_UNDEFINED_SYMBOLS := true include $(BUILD_SHARED_LIBRARY) APP_OPTIM := debug LOCAL_CFLAGS := $(call my-dir) Alguem poderia ajudar em como eu conseguir fazer dar o build com este comando: -lOpenCL Me propuseram a trocar o -lOpenCL por -framework OpenCL porem sem sucesso.Obrigado.
  2. Carcleo

    Buffering em MediaPlayer

    Tenho um objeto MediaPlayer mPlayer = new MediaPlayer(); Objetivo: Tocar o Streaming de uma Web Rádio e funciona corretamente. Porém, quando clico em Play, leva um tempo até que a Rádio Web comece a tocar. Existe alguma forma de enquanto o streaming estiver carregando, eu pegar o percentual para passar para uma SeekBar por exemplo?, Como? Segue o que eu já fiz: package carcleo.com.player; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.ProgressDialog; import android.app.TaskStackBuilder; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnBufferingUpdateListener; import android.os.AsyncTask; import android.os.Build; import android.support.annotation.RequiresApi; import android.support.v4.app.NotificationCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView; import java.io.IOException; public class player extends AppCompatActivity implements OnBufferingUpdateListener{ private MediaPlayer mPlayer; private String URL; private Button btnPlayPause; private Boolean conexao = false; private SeekBar sb; private TextView textView; private TextView textView2; private TextView textView3; private NotificationManager mNotificationManager; private AudioManager audioManager; private ProgressDialog progressDialog; @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player); sb = findViewById(R.id.seekBar); textView = findViewById(R.id.textView); textView2 = findViewById(R.id.textView2); textView3 = findViewById(R.id.textView3); progressDialog = new ProgressDialog(this); btnPlayPause = (Button) findViewById(R.id.btnPlayPause); btnPlayPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { try { tocaPausa(); } catch (IOException e) { e.printStackTrace(); } } }); configuraAudioManager(); } private void tocaPausa() throws IOException { if (conexao == true) { if (!mPlayer.isPlaying()) { mPlayer.start(); btnPlayPause.setBackgroundResource(R.drawable.pause); } else { mPlayer.pause(); btnPlayPause.setBackgroundResource(R.drawable.play); } } else { String url = "rtsp://cdn-the-2.musicradio.com:80/LiveAudio/Capital"; // your URL here new Play().execute(url); } } private void configuraAudioManager() { audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); int volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); sb.setMax(maxVolume); sb.setProgress(volume); sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, AudioManager.FLAG_SHOW_UI); Double total = progress * 6.666666666666667; String valor =Integer.toString(Integer.valueOf(total.intValue())); textView.setText(valor+" %"); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); } @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) private void notificacao (){ NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.home) .setContentTitle("Rádio Capital") .setContentText("Agora deu"); Intent resultIntent = new Intent(this, player.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(player.class); stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(1, mBuilder.build()); } private void contaBuffer () { textView2.setText(Integer.toString(mPlayer.getDuration())); mPlayer.setOnBufferingUpdateListener( new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { double ratio = percent / 100.0; int bufferingLevel = (int)(mp.getDuration() * ratio); sb.setSecondaryProgress(bufferingLevel); textView2.setText(Integer.toString(bufferingLevel)); } } ); } public void mostraBuffer() { mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() { @Override public boolean onInfo(MediaPlayer mp, int what, int extra) { if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END){ progressDialog.dismiss(); return true; } else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START){ progressDialog.show(); } return false; } }); } }); } @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { textView3.setText(Integer.toString(percent)); } class Play extends AsyncTask<String, Void ,Boolean > { @Override protected void onPreExecute() { btnPlayPause.setBackgroundResource(R.drawable.carregando); btnPlayPause.setEnabled(false); } @Override protected Boolean doInBackground(String... params) { try { mPlayer = new MediaPlayer(); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.setDataSource(params[0]); mostraBuffer(); mPlayer.prepare(); // might take long! (for buffering, etc) return true; } catch (IOException e) { e.printStackTrace(); } return false; } @Override protected void onPostExecute(Boolean result) { if (result == true){ btnPlayPause.setEnabled(true); mPlayer.start(); conexao = true; btnPlayPause.setBackgroundResource(R.drawable.pause); contaBuffer(); } else { conexao = false; } } } }
  3. Eu preciso inserir mais de 3000 itens no ArrayList, o que gera o erro: method code too large. Acredito que usando um TXT como "BANCO DE DADOS" vai resolver o meu problema. Atualmente eu faço assim: ----------------------------------------------------- ArrayList lista = new ArrayList(); // inserindo os itens no ArrayList lista.add(new produtoItem(R.drawable.imagem, "AA", "AA", "AA", "AA")); adapter = new produtoAdapter(this, lista); ListView listView = (ListView) findViewById(R.id.listView1); listView.setAdapter(adapter); ----------------------------------------------------- Como pegar os dados de um TXT e inserir no meu arrayList? OBS: Esse APP precisa funcionar sem a necessidade de internet. Ou seja, não posso usar um banco dados externo.
  4. Estou desenvolvendo um jogo RPG para mobile e preciso de membros para formar a equipe, estou precisando pessoas que possam: fazer pixel art, logos, desenhos, ícones, efeitos sonoros, músicas. Programadores experientes também são bem vindos. interessados favor deixar seu skype nos comentários. Segue o GDD(ainda imcompleto) https://drive.google.com/open?id=1gNtg7URzmi1n9UYMmjiyKe_WXDmjHVkZkQFLCeWq_Wo
  5. Emerson.Oliveira

    Criando Simples APP

    estou fazendo um simples APP web view, quero que quando o usuário acessar o APP apareça uma logo e em baixo icone de carregando, nessa logo nesse gif carregando vai ter uma verificação se a pessoa está conectado a uma internet ou não, se tiver conectado manda para web view, se não tiver conectado aparece uma mensagem vermelho que o celular está sem conexão no momento, como fazer isso se alguém tiver alguma ideia não manjo muito em fazer APP
  6. Carcleo

    Conexão com a INTERNET no Android Studio

    Olá, tenho o form abaixo onde eu leio um json à partir de um endereço na web http://www.hotplateprensas.com.br/ws/clientest.php que me entrega uma string json do tipo { "clientes":[ { "idClientesT":"1", "tipo":"s", "nome":"Carlos"}, { "idClientesT":"2", "tipo":"s", "nome":"Rogério" } ] } Então, pego ela no AndroidStudio com a Activity abaixo: package carcleo.com.radiosingular; import android.os.Bundle; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import carcleo.com.radiosingular.classes.JsonClass; public class form extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.form); } public void listaClientes (View View) { if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } String url = "http://hotplateprensas.com.br/ws/clientest.php"; JsonClass json = new JsonClass(); JSONObject clientesLista = json.getJSONFromUrl(url); clientes(clientesLista); } public void clientes(JSONObject jsonCli) { try { JSONArray arrayPlanetas = jsonCli.getJSONArray("clientes"); for (int i = 0; i < arrayPlanetas.length(); i++) { JSONObject cliente = arrayPlanetas.getJSONObject(i); Log.d("idClientesT", cliente.getString("idClientesT")); Log.d("tipo", cliente.getString("tipo")); Log.d("nome", cliente.getString("nome")); } } catch (JSONException e) { e.printStackTrace(); } } } Esse código funciona normalmente.Porém, é preciso colocar o trecho de código abaixo; if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } Senão, a conexão com a internet NÃO é estabelecida. No entanto, eu já adicionei a permissão de acesso à INTERNET no AndroidManifest. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="carcleo.com.radiosingular"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".login"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".principal" /> <activity android:name=".form" /> <activity android:name=".retrofit" /> </application> </manifest> Mas não adianta. Se eu retirar esse bloco de código if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } A conexão com a INTERNET não acontece. O problema é que quantas vezes eu precisar acessar à INTERNET será o mesmo número de vezes que terei que fazer uso desse trecho de código? Será que não existe um arquivo de configuração geral para isso no AndroidStudio?
  7. JuninhoDrak

    ionic native-serial retorna device not found

    O problema é: eu quero estabelecer comunicação entre o meu desktop e meu dispositivo inteligente android. Estou tentando um passo simples mas recebo "device not found" como retorno é aqui que baseio minha codificação: https://ionicframework.com/docs/native/serial/ Este é o código Há poucos conteúdo sobre esse recurso na internet.
  8. Alex Oliveira Dos Santos

    Recyclerview alterando informações a cada 10 linhas automaticamente

    Boa tarde, estou criando um carrinho de compras onde tem uma recyclerview listando os produtos, ao lado de cada produto tem um campo de quantidade + ou - que teram a função de adicionar e aumentar a quantidade de produto, mas o problema é que quando eu altero a quantidade de um produto automaticamente esta quantidade tambem vai para outras linhas, intercaladas de 10 em 10, sei que isso é porque o recyclerview meio que carrega de 10 em 10 e vai limpando, soque eu nao sei como resolver isso, segue código e abaixo imagem de referencia public class ProdutosCodBarrasAdapter extends RecyclerView.Adapter<ProdutosCodBarrasAdapter.ViewHolderProdutos> { private List<Produto> dados; private List<PedidoItens> dados2; public Button actionProdMais; public Button actionProdMenos; public TextView txtQtd; private TabelaPreco tabelaPreco; private TabelaPrecoProdutoRepositorio tabelaPrecoProdutoRepositorio; public Double varBaseValor; public int varCodProduto; public Double passaQtd; public Produto[] produto; public String varprecoBaseNovoAjuste; public int varCodProdutoExcluir; public int varCodProdutoItemExcluir; private SQLiteDatabase conexao; private DadosOpenHelper dadosOpenHelper; public int varB; public int varC; public int varD; public String varE; public static final String NOME_PREFERENCE = "INFORMACOES_LOGIN_AUTOMATICO"; public int cli_emp_id; public ProdutosCodBarrasAdapter(List<Produto> dados){ this.dados = dados; } @NonNull @Override public ProdutosCodBarrasAdapter.ViewHolderProdutos onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); View view = layoutInflater.inflate(R.layout.linha_carrinho_add, parent,false);//R.layout.linha_produtos, parent,false ViewHolderProdutos holderProdutos = new ViewHolderProdutos(view, parent.getContext()); view.setBackgroundColor(0xFFF0F0F0); return holderProdutos; } @Override public void onBindViewHolder(@NonNull ProdutosCodBarrasAdapter.ViewHolderProdutos holder, int position) { if((dados != null) && (dados.size() > 0)) { DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR"))); formatoDois.setMinimumFractionDigits(2); formatoDois.setParseBigDecimal (true); //CARREGAR NA BINDVIEW aqui ele gera de 10 em 10, sempre ir atualizano a lista com as alterações (dados) Produto produto = dados.get(position); holder.listNomeProd.setText(produto.tab_id + " : " + produto.est_descricao_cor + " - " + produto.est_tam + " posição: "+position);//aqui morre //holder.listRefProd.setText(produto.prod_referencia.toString());// varprecoBaseNovoAjuste = new String(formatoDois.format(produto.tab_preco_final)); varB = Integer.parseInt(produto.varCodPed);//codigo do pedido varC = Integer.parseInt(String.valueOf(produto.codigo_prod));//codigo produto varD = Integer.parseInt(String.valueOf(produto.est_id_cor));//codigo da cor varE = String.valueOf(produto.est_tam);//tamanho holder.listPrecoProd.setText(varprecoBaseNovoAjuste);//aqui? holder.listPrecoProd.setText(formatoDois.format(produto.tab_preco_final.toString())); varCodProdutoItemExcluir = produto.prod_id; holder.listPegaCodPedidoItem2.setText(String.valueOf(varCodProdutoItemExcluir)); varBaseValor = produto.tab_preco_final; varCodProduto = produto.prod_id; } } @Override public int getItemCount() { return dados.size(); } public class ViewHolderProdutos extends RecyclerView.ViewHolder implements View.OnClickListener { private TextView listNomeProd; private TextView listPrecoProd; private ImageView idImagen; private TextView txtQtd; private double pegaQtd; private TextView listPegaCodPedidoItem2; public ViewHolderProdutos(@NonNull View itemView, final Context context) { super(itemView); listNomeProd = (TextView) itemView.findViewById(R.id.listNomeProd); listPrecoProd = (TextView) itemView.findViewById(R.id.listPrecoProd); txtQtd = (TextView) itemView.findViewById(R.id.txtQtd); passaQtd = Double.valueOf(txtQtd.getText().toString()); listPegaCodPedidoItem2 = (TextView) itemView.findViewById(R.id.listPegaCodPedidoItem2); actionProdMais = (Button) itemView.findViewById(R.id.actionProdMais); actionProdMais.setOnClickListener(this); actionProdMenos = (Button) itemView.findViewById(R.id.actionProdMenos); actionProdMenos.setOnClickListener(this); //ATUALIZAR ELE NA VIEW // actionProdMenos.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // get position int pos = getAdapterPosition(); // check if item still exists if(pos != RecyclerView.NO_POSITION){ Produto produto = dados.get(pos); Double pegaQtd2 = Double.valueOf(txtQtd.getText().toString()); if(pegaQtd2 > 1.00){pegaQtd2--;} txtQtd.setText(pegaQtd2.toString()); Double pegaPrecoProd2 = pegaQtd2 * varBaseValor; DecimalFormat formatoDois2 = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR"))); formatoDois2.setMinimumFractionDigits(2); formatoDois2.setParseBigDecimal (true); listPrecoProd.setText(formatoDois2.format(pegaPrecoProd2).toString()); passaQtd = Double.valueOf(pegaQtd2.toString()); Toast.makeText(v.getContext(), "TAM: " + produto.est_tam + "QTD: " + passaQtd, Toast.LENGTH_SHORT).show(); //ProdutosCodBarrasAdapter.this.notifyItemChanged(pos, "payload " + pos); //Toast.makeText(v.getContext(), "You clicked " + produto.est_tam, Toast.LENGTH_SHORT).show(); } } }); // // actionProdMais.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // get position int pos = getAdapterPosition(); // check if item still exists if(pos != RecyclerView.NO_POSITION){ Produto produto = dados.get(pos); Double pegaQtd = Double.valueOf(txtQtd.getText().toString()); pegaQtd++; txtQtd.setText(pegaQtd.toString()); Double pegaPrecoProd = pegaQtd * varBaseValor; DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR"))); formatoDois.setMinimumFractionDigits(2); formatoDois.setParseBigDecimal (true); listPrecoProd.setText(formatoDois.format(pegaPrecoProd).toString()); passaQtd = Double.valueOf(pegaQtd.toString()); Toast.makeText(v.getContext(), "TAM: " + produto.est_tam + "QTD: " + passaQtd, Toast.LENGTH_SHORT).show(); } } }); // } @Override public void onClick(View view) { switch (view.getId()) { case R.id.actionProdMais: break; case R.id.actionProdMenos: break; default: break; } } } }
  9. RodrigoAF

    conexão do android studio com API do GOOGLE DRIVE

    Galera, sou novo em desenvolvimento android, porém gostaria de saber se podem me ajudar em meu aplicativo. Basicamente, anexo um arquivo (texto, imagem) em meu app e envio para o Google drive, onde ele cria uma pasta com o nome deste arquivo e realiza o upload dele nesta pasta. Bem, não consigo nem me conectar com o Google drive, tentei já com outras API's e deu certo, alguém pode me ajudar ? Estou uma semana tentando realizar este procedimento rs Tento ver a documentação do Google mesmo, mas é muito confuso. E outros sites tentei mas são versões bem inferiores, ou já é com o Kotlin. Agradeço a ajuda, Rodrigo A.F.
  10. Olá pessoal, meu tablet iniciou um comportamento estranho, após desligar e ligar apareceu uma mensagem do sistema dizendo algo como "O caminho de .com.ugc.android.activitys. está errado", pelo pouco que entendo sei que "activitys" se escreve activities, talvez seja esse o motivo da mensagem. Após isso, todos os apps e tarefas ficam com aquela mensagem de "O aplicativo parou de funcionar". Tentei formatar pelo reset padrão do android e o procedimento ocorre normalmente mas quando ao final, quando o sistema reinicia tudo está como mantes, nada foi formatado, todos os arquivos estão intactos juntamente com o erro. Tentei formatar por aquele reset apertando o power e o volume, coloquei para redefinir para as configurações de fábrica e acontece a mesma coisa de antes, reinicia com tudo igual. Quando conecto no pc e tento alterar algo nos arquivos do tablet pelo pc ele retorna uma mensagem dizendo que o dispositivo foi desconectado, sendo que ainda consigo mexer. Ficarei extremamente agradecido caso alguém que tenha alguma ideia e que possa me dar uma luz. Tablet Multilaser M7 O mesmo desde anúncio: https://www.walmart.com.br/tablet-multilaser-preto-m7-3g-quad-core-camera-wi-fi-tela-hd-7-memoria-8gb-dual-chip-nb223/4280776/pr?utm_source=google-5&amp;utm_medium=sem&amp;utm_campaign=institucional-marca
  11. Carcleo

    Campos sobrepostos e gira e some botão

    Boa Noite! Estou iniciando na arte do Android Studio e estou apanhando bastante e venho em busca de ajuda. Tenho um formulário (Activity) de login. 2 campos: login e senha e 1 botão Quando compilo os campos ficam um sobre o outro. Eis o xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Login"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="LOGON" tools:layout_editor_absoluteX="162dp" tools:layout_editor_absoluteY="16dp" /> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:text="Usuário" tools:layout_editor_absoluteX="83dp" tools:layout_editor_absoluteY="61dp" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" tools:layout_editor_absoluteX="80dp" tools:layout_editor_absoluteY="129dp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" tools:layout_editor_absoluteX="147dp" tools:layout_editor_absoluteY="201dp" /> </android.support.constraint.ConstraintLayout> E o .java package carcleo.com.cadastrodeclientes; import android.app.Activity; import android.os.Bundle; public class Login extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); } } O que estou errando?
  12. First

    Stickers WhatsApp

    Olá a todos! Ultimamente os famosos Stickers para o WhatsApp entrou em "febre". Estive pesquisando no Google como que eu poderia criar um aplicativo para armazenar os meus Stickers e publicar o app na Play Store, achei alguns conteúdos e acho que entendi como funciona, mais ou menos, mas a questão é que eu não faço a miníma ideia de como publicar o aplicativo. Peço a ajuda de vocês para me instruir nessa questão, se puderem, é claro. Criando adesivos (Stickers) para o WhatsApp https://faq.whatsapp.com/en/android/26000226/?category=5245251 Lá contem algumas informações bem concretas, e possuí um repositório no GitHub onde contém o "aplicativo para stickers de exemplo, pronto para serem publicados em alguma loja, como Google Play Store ou Apple Store". Repositório de adesivos (Stickers) para o WhatsApp - GitHub https://github.com/WhatsApp/stickers Agora a princípio eu tenho a seguinte dúvida, como que eu posso fazer meus próprios adesivos (stickers) e publicar na Google Play Store?! Desde já agradeço o tempo de vocês, deixo o meu muito obrigado.
  13. Usuario11

    Jogo Sliding Pipes (tubos deslizantes)

    Pessoal, noa noite. Desenvolvi esse jogo para android e estou divulgando. Já esta disponível para download na loja da google play store. Gostaria da ajuda de vocês para avaliar, é claro, quem puder e quiser Muito obrigado!
  14. Fábão Ramos

    Procuro um proficional para deselvolver um app

    Olá sei que não é o caso mas preciso de alguem que faça um app para mim nada muito complicado mas com integração com o meu sql server 2012. app envolve: compra de moedas virtual para o meu game já pre cadastradas pelo gplay e suporte ao cliente. que tenha alertas de app desculpe se não é o local adequado para isso mas estou pesquisando muito e nao sei o trabalho que isso daria mas acredito que não seja um dos mais trabalhosos.
  15. Aprendendo a usar o android studio e seguindo um curso da udacity, importei um projeto do curso e na hora de rodar da esse erro. Já aconteceu com alguém? Alguém sabe como resolver?
  16. Bom dia pessoal, estou quase concluindo um aplicativo, porém estou empacado nessa situação. Fiz um sistema simples de registro e login apenas pra guardar valores do celular no mysql, ele guarda todos os valores certinhos, também fiz um sistema simples de ranking usando Android, MySql e PHP, ele retorna tudo perfeito. Porém quando eu tento fazer o login comparando o usuario e senha do banco de dados pelo android, ele me retorna como valor nulo, sendo que se eu editar o php com usuario e senha, ele retorna no browser os dados referente ao usuário, alguém saberia o por que? Sistema de Registrar: public void registrarConta(View v) { final String nome = profilename.getText().toString(); final String senha = profilepass.getText().toString(); final String email = profileemail.getText().toString(); String id = profileid.getText().toString(); String url = HOST + "/criartapball.php"; if(nome.isEmpty()) { profilename.setError("Digite seu Nome!"); } //else if() else if(senha.isEmpty()) { profilepass.setError("Digite uma Senha!"); } else if(email.isEmpty()) { profileemail.setError("Digite seu Email!"); } else if(id.isEmpty()) { final Future<JsonObject> jsonObjectFuture = Ion.with(registrar.this) .load(url) .setBodyParameter("NOME", nome) .setBodyParameter("SENHA", senha) .setBodyParameter("EMAIL", email) .setBodyParameter("DINHEIRO", "0") .setBodyParameter("RECORDE", "0") .setBodyParameter("CLIQUES", "0") .setBodyParameter("MAIOR_NIVEL", "0") .setBodyParameter("TOTAL_GANHO", "0") .setBodyParameter("REGISTRADO", "1") .asJsonObject() .setCallback(new FutureCallback<JsonObject>() { @Override public void onCompleted(Exception e, JsonObject result) { if(result == null) { Toast.makeText(registrar.this, "Não foi possível! Verifique sua conexão.", Toast.LENGTH_LONG).show(); } else { if (result.get("CREATE").getAsString().equals("OK")) { int idRetornado = Integer.parseInt(result.get("ID").getAsString()); //-------- SISTEMA DE DADOS OFFLINE SALVOS NO CELULAR SharedPreferences settings = getSharedPreferences("GAME_DATA", Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putInt("TOTAL_GANHO", 0); editor.putInt("DINHEIRO_ATUAL", 0); editor.putInt("CLIQUES_FEITOS", 0); editor.putInt("HIGH_SCORE", 0); editor.putInt("MAIOR_LEVEL", 0); editor.putString("NOME", nome); editor.putString("SENHA", senha); editor.putString("EMAIL", email); editor.putInt("REGISTRADO", 1); editor.putInt("ID_REGISTRO", idRetornado); editor.commit(); Toast.makeText(registrar.this, "Jogador " + nome + " criado com Sucesso! ID: " + idRetornado, Toast.LENGTH_LONG).show(); Log.d(TAG, "Usuário Registrado:>>> " + nome + " - ID: " + idRetornado + " <<<"); startActivity(new Intent(getApplicationContext(), start.class)); } else { Toast.makeText(registrar.this, "Nome já utilizado!", Toast.LENGTH_LONG).show(); } } } }); } } PHP do registro: <?php include "conexaotapball.php"; $nome = $_POST['NOME']; $senha = $_POST['SENHA']; $email = $_POST['EMAIL']; $dinheiro = $_POST['DINHEIRO']; $record = $_POST['RECORDE']; $cliques = $_POST['CLIQUES']; $maior_nivel = $_POST['MAIOR_NIVEL']; $total_ganho = $_POST['TOTAL_GANHO']; $registrado = $_POST['REGISTRADO']; $sql_insert = "INSERT INTO jogadores (NOME, SENHA, EMAIL, DINHEIRO, RECORDE, CLIQUES, MAIOR_NIVEL, TOTAL_GANHO, REGISTRADO) VALUES (:NOME, :SENHA, :EMAIL, :DINHEIRO, :RECORDE, :CLIQUES, :MAIOR_NIVEL, :TOTAL_GANHO, :REGISTRADO)"; $stmt = $PDO->prepare($sql_insert); $stmt->bindParam(':NOME',$nome); $stmt->bindParam(':SENHA',$senha); $stmt->bindParam(':EMAIL',$email); $stmt->bindParam(':DINHEIRO',$dinheiro); $stmt->bindParam(':RECORDE',$record); $stmt->bindParam(':CLIQUES',$cliques); $stmt->bindParam(':MAIOR_NIVEL',$maior_nivel); $stmt->bindParam(':TOTAL_GANHO',$total_ganho); $stmt->bindParam(':REGISTRADO',$registrado); if($stmt->execute()) { $id = $PDO->lastInsertId(); $dados = array("CREATE"=>"OK", "ID"=>$id); } else { $dados = array("CREATE"=>"ERRO"); //echo $dados->getMessage(); } echo json_encode($dados); ?> Sistema de Logar: public void logarConta(View v) { final String nome = profilename.getText().toString(); final String senha = profilepass.getText().toString(); final String url = HOST + "/login.php"; if(nome.isEmpty()) { profilename.setError("Digite seu Nome!"); } else if(senha.isEmpty()) { profilepass.setError("Digite sua Senha!"); } else { final Future<JsonObject> jsonObjectFuture = Ion.with(logar.this) .load(url) .setBodyParameter("NOME", nome) .setBodyParameter("SENHA", senha) .asJsonObject() .setCallback(new FutureCallback<JsonObject>() { @Override public void onCompleted(Exception e, JsonObject result) { //atualizarDados(); if(result == null) { Toast.makeText(logar.this, "Não foi possível! Verifique sua conexão.", Toast.LENGTH_LONG).show(); } else { if (result.get("LOGAR").getAsString().equals("OK")) { JsonObject obj = result.get(result.get("ID").getAsString()).getAsJsonObject(); rankingrecorde r = new rankingrecorde(); r.setID(Integer.valueOf(obj.get("ID").getAsString())); r.setNome(obj.get("NOME").getAsString()); r.setSenha(obj.get("SENHA").getAsString()); r.setEmail(obj.get("EMAIL").getAsString()); r.setDinheiro(obj.get("DINHEIRO").getAsString()); r.setRecord(obj.get("RECORDE").getAsString()); r.setTotal_ganho(obj.get("TOTAL_GANHO").getAsString()); r.setMaior_nivel(obj.get("MAIOR_NIVEL").getAsString()); r.setCliques(obj.get("CLIQUES").getAsString()); r.setRegistrado(obj.get("REGISTRADO").getAsString()); //-------- SISTEMA DE DADOS OFFLINE SALVOS NO CELULAR SharedPreferences settings = getSharedPreferences("GAME_DATA", Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putInt("TOTAL_GANHO", Integer.valueOf(r.getTotal_ganho())); editor.putInt("DINHEIRO_ATUAL", Integer.valueOf(r.getDinheiro())); editor.putInt("CLIQUES_FEITOS", Integer.valueOf(r.getCliques())); editor.putInt("HIGH_SCORE", Integer.valueOf(r.getRecord())); editor.putInt("MAIOR_LEVEL", Integer.valueOf(r.getMaior_nivel())); editor.putString("NOME", r.getNome()); editor.putString("SENHA", r.getSenha()); editor.putString("EMAIL", r.getEmail()); editor.putInt("REGISTRADO", Integer.valueOf(r.getRegistrado())); editor.putInt("ID_REGISTRO", r.getID()); editor.commit(); Toast.makeText(logar.this, "Jogador " + obj.get("NOME").getAsString() + " logado com Sucesso!", Toast.LENGTH_LONG).show(); startActivity(new Intent(getApplicationContext(), start.class)); } else if (result.get("LOGAR").getAsString().equals("NAOEXISTE")) { Toast.makeText(logar.this, "Nome ou senha incorretos!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(logar.this, "Nome já utilizado!", Toast.LENGTH_LONG).show(); } } } }); } } PHP do Login: <?php include "conexaotapball.php"; $host = "localhost"; $db = "id7211556_tapballusers"; $usuario = "id7211556_zotinfotapball"; $senhadb = "tapballthegame"; $con = mysqli_connect($host,$usuario,$senhadb,$db); $nome = "teste"; //$_POST['NOME']; $senha = "teste";// $_POST['SENHA']; $sql_login = "SELECT * FROM jogadores WHERE NOME = '$nome' AND SENHA = '$senha'"; $dados_login = $PDO->query($sql_login); $resultado_login = array(); $result = mysqli_fetch_array(mysqli_query($con,$sql_login)); if(isset($result)) { //$dados = array("LOGAR"=>"OK"); while($jogador = $dados_login->fetch(PDO::FETCH_OBJ)){ $resultado_login[] = array("ID"=>$jogador->ID, "NOME"=>$jogador->NOME, "SENHA"=>$jogador->SENHA, "EMAIL"=>$jogador->EMAIL, "DINHEIRO"=>$jogador->DINHEIRO, "RECORDE"=>$jogador->RECORDE, "CLIQUES"=>$jogador->CLIQUES, "MAIOR_NIVEL"=>$jogador->MAIOR_NIVEL, "TOTAL_GANHO"=>$jogador->TOTAL_GANHO, "REGISTRADO"=>$jogador->REGISTRADO,"LOGAR"=>"OK"); } } else { $resultado_login = array("LOGAR"=>"NAOEXISTE"); } echo json_encode($resultado_login); //echo json_encode($dados); mysqli_close($con); ?> Sistema do Ranking: private void listaRanking(){ String url = HOST + "/rankrecorde.php"; Ion.with(getBaseContext()) .load(url) .asJsonArray() .setCallback(new FutureCallback<JsonArray>() { @Override public void onCompleted(Exception e, JsonArray result) { if(result == null) { Toast.makeText(rankrecorde.this, "Não foi possível! Verifique sua conexão.", Toast.LENGTH_LONG).show(); } else { for (int i = 0; i < result.size(); i++) { JsonObject obj = result.get(i).getAsJsonObject(); rankingrecorde r = new rankingrecorde(); r.setNome(obj.get("NOME").getAsString()); r.setRecord(obj.get("RECORDE").getAsString()); lista.add(r); } rankAdapter.notifyDataSetChanged(); } } }); } PHP que faz a função do ranking: <?php include "conexaotapball.php"; $sql_read = "SELECT * FROM jogadores ORDER BY RECORDE * 1 DESC LIMIT 10"; //$sql_readrecord = "SELECT NAME, RECORDE FROM jogadores ORDER BY RECORDE DESC"; $dados = $PDO->query($sql_read); //$dados = $PDO->query($sql_readrecord); $resultado = array(); while($jogador = $dados->fetch(PDO::FETCH_OBJ)){ $resultado[] = array("ID"=>$jogador->ID, "NOME"=>$jogador->NOME, "RECORDE"=>$jogador->RECORDE); } echo json_encode($resultado); ?> Site que estou utilizando para testes: https://zotinfogames.000webhostapp.com/tapball/logartapball.php Aqui está a saida utilizando usuario teste direto no php de login: [ { ID: "4", NOME: "teste", SENHA: "teste", EMAIL: "teste", DINHEIRO: "205", RECORDE: "165", CLIQUES: "64", MAIOR_NIVEL: "3", TOTAL_GANHO: "205", REGISTRADO: "1", LOGAR: "OK" } ] Obrigado por qualquer ajuda que vier.
  17. luiz_paulo_andrade

    Download dentro de um iframe no android

    Estou desenvolvendo um app com ionic que tem uma página webview dentro de um iframe, nessa webview existe um botão de download que funciona normalmente no browser, mas no android não funciona. Creio que o Android esteja bloqueando esse download, gostaria de saber como habilitar para que o download seja feito diretamente, como faz no browser.
  18. Bruno S. Ferreira

    Android vs IOS

    Boa noite. Estou com uma dúvida e já vi vídeos no youtube que só enrolam e o que encontrei no google não fui capaz de captar corretamente. Eu sei fazer app para android (básico e tal) Mas seu eu quero publicar para iphone eu tenho estas dúvidas: ---Eu preciso ter obrigatoriamente um macbook? ---Eu preciso criar todo o app do zero ou poderia uma o app do android?(sei que tem o lance da chave de lá tb mas basicamente a estrutura) O iphone teria a opção de instalar diretamente o app sem a necessidade de estar publicado na apple store, como da pra fazer no android (onde desabilita uma opção de segurança) pq das duvidas... eu não tenho mac, não posso comprar um agora, Eu uso o celular para rodar os app android e testá-los pq se eu usar o próprio pc ele trava por falta de memória e como não tenho um iphone e não compraria só pra verificar se o app fuinciona estaria fora de cogitação tb obrigado quem puder responder
  19. PeeWee

    Obter numero do IMEI e do telefone

    Boa noite pessoal, estou iniciando em Android e Java e ja começou os problema.... como sempre. Estou tentando desenvolver uma aplicação que obtenha o número do celular ou IMEI (se for o numero do celular melhor) automaticamente, de modo que o usuário nao precise preencher o campo. Bom como nao sei nada, saii pesquisando fóruns e tentando entender alguns código, e a principio o que consegui foi isso: public class Main extends Activity{ private EditText edTotal; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edTotal = (EditText)findViewById(R.id.edTotal); } public void mostranum(View n){ Activity mAppContext = null; TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); String mPhoneNumber = tMgr.getLine1Number(); System.out.print(tMgr); edTotal.setText(String.valueOf(tMgr)); } } Bom acho que quem manja ja percebeu que quero mostrar na edTotal o numero do telefone, ja adicionei no android manifest a linha necessária para isso, porém ao rodar nao aparece nada no campo correspondente. Espero que algum colega possa me ajudar.
  20. Dominciano

    Entrando na área de Web/Mobile

    Olá a todos. Pessoal, trabalho em uma empresa focada em desenvolvimento Desktop utilizando a linguagem DataFlex(sim, provavelmente você nunca ouviu falar. Rs). Meu chefe quer entrar no ramo de desenvolvimento web/mobile para o setor comercial. Porém, ninguém da empresa tem grande conhecimento nessa área e como grande parte dos integrantes desse grupo já estão familiarizados com essa área, gostaria de pedir uma sugestão de quais seriam os melhores conjuntos de ferramentas(Linguagem, IDE, BD etc..) poderiamos usar para atender aos seguintes requisitos: A arquitetura seria a seguinte: -Pode ser pra web(e obrigatoriamente portar pra mobile, pois o foco será esse) ou um aplicativo pra smartphone. -Obrigatoriamente precisa sincronizar os dados com a aplicação Desktop(que utiliza o banco de dados DataFlex). -Obrigatoriamente ser barato(no sentido de licenciar/distribuir o sistema para os clientes) -A(s) ferramenta(s) de desenvolvimento podem ser pagas, desde que a distribuição seja gratuita. -Objetivo é baratear o preço no momento da venda do software para o cliente. -Os sistemas serão focados em aplicativos comerciais(padarias, bares, lojas de roupas, até mesmo para colégios etc...) -Futuramente, gostaríamos de não depender de internet o tempo todo para o cliente utilizar o sistema. -O banco de dados não deve passar dos 15kk de registros. Desde já, agradeço.
  21. Luis Felipe Rebecca

    While para cadastrar no Firebase

    Olá, Estou fazendo um aplicativo em android e me deparei com uma duvida na hora de salvar e exibir em uma lista, os usuários de um sistema. Basicamente o app por enquanto adiciona qualquer um que voce coloque o email correto e click para executar a ação de adicionar a contato, até ai ok! tudo funcionando. Agora estou precisando fazer com quem alguns usuários sejam adicionados a contatos logo que o usuário abre o app, fiz isso colocando esse método abaixo dentro do onCreate da activity principal, novamente tudo ok! Por algum motivo ele não cadastra os 3 usuários que pre-defini na variável, imagino que seja algo relacionado ao EventListener ou o while não esta rodando e executando todos os trechos. Obrigado desde já, fico no aguardo de uma solução! *Se o processor for feito manualmente, trocando o valor do contador manualmente para 1 ou 2 ou 3 e o while for trocado para "contador == 1 ou 2 ou 3 " o código executa com perfeição e cadastra os 3 contatos. private void abrirCadastroContato() { String emailContato; emailContato = "email"; int contador = 1; while (contador <=3) { if (contador == 1) { emailContato = "email1@email1.com.br"; } if (contador == 2) { emailContato = "email1@email1.com.br"; } if (contador == 3) { emailContato = "email1@email1.com.br"; } identificadorContato = Base64Custom.codificarBase64(emailContato); firebase = ConfiguracaoFirebase.getFirebase().child("usuarios").child(identificadorContato); firebase.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.getValue() != null) { //Recuperar dados do contato a ser adicionado Usuario usuarioContato = dataSnapshot.getValue(Usuario.class); //Recuperar identificador usuario logado (base64) Preferencias preferencias = new Preferencias(MainActivity.this); String identificadorUsuarioLogado = preferencias.getIdentificador(); firebase = ConfiguracaoFirebase.getFirebase(); firebase = firebase.child("contatos") .child(identificadorUsuarioLogado) .child(identificadorContato); Contato contato = new Contato(); contato.setIdentificadorUsuario(identificadorContato); contato.setEmail(usuarioContato.getEmail()); contato.setNome(usuarioContato.getNome()); firebase.setValue(contato); } else { Toast.makeText(MainActivity.this, "Usuário não possui cadastro.", Toast.LENGTH_LONG).show(); } } @Override public void onCancelled(DatabaseError databaseError) { } }); contador ++; } }
  22. MichellHenrique

    Problema com upload em cliente android

    Ola pessoal, estou com problema em uploads em clientes android, mesmo dando permissão para o navegador acessar o armazenamento do celular tem arquivos que eu consigo subir e outros que não consigo. O sistema de upload é bem simples, esta funcionando bem no windows e no linux. Suspeito que o problema esteja diretamente relacionado as permissões no android mas ainda nao achei uma solução. Alguém ja passou por isso? Obs: Testei nos navegadores chrome, firefox e operamini no android e todos apresentam o mesmo problema... index.html ... <form method="POST" action="upload.php" enctype="multipart/form-data"> <input type="file" name="file1" id="file1"> <input type="submit" value="Enviar"> </form> ... upload.php <?php // Carrega arquivo de configurações require('config.php'); // Recebe arquivo a ser enviado de forma ternária $arquivo1 = (isset($_FILES['file1'])) ? $_FILES['file1'] : null; // Essa parte é por desencargo de consiencia caso por // ventura o arquivo estivesse trasendo permissões // anteriores do android que impedissem sua movimentação if(chmod($arquivo1['tmp_name'], 0777)){ echo 'Permissão mudada'; }else{ echo 'Permissão negada'; } // Aqui um teste simples para saber se o arquivo foi // transferido para a pasta temporaria do servidor if(file_exists($arquivo1['tmp_name'])){ echo 'O arquivo existe'; }else{ echo 'O arquivo não existe'; } // Move o arquivo baixado para a pasta informada no // arquivo config.php e mostra mensagem sobre a transferência echo move_uploaded_file($arquivo1['tmp_name'], $pastaupload.$arquivo1['name']) ? 'Envio Completo!' : 'Falha No Envio!'; ?>
  23. Olá, estou fazendo um projeto em Android e estou com algumas dificuldades em ralação a fazer uma listagem de imagens(Feed), onde as imagens são retiradas do firebase e são apresentadas em um fragment. Um esquema praticamente igual ao Instagram; Por enquanto estou tentando fazer a listagem somente das imagens, porem as imagens não aparecem já fiz diversos testes e queria saber aonde posso estar errando. A variável 'listaFeed' localizada no FeedFragment não apresenta valor nenhum, o que pode estar causando a não impressão dessas imagens; Segue abaixo os códigos usados para fazer a listagem. MainActivity.java(Trecho que publica a imagem no Firebase Storage): @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item_sair: deslogarUsuario(); return true; case R.id.item_adicionar: abrirCadastroContato(); return true; case R.id.item_configuracoes: return true; case R.id.item_pesquisar: return true; case R.id.item_camera: compartilharFoto(); return true; default: return super.onOptionsItemSelected(item); } } private void compartilharFoto() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, 1); } //GRAVAR IMAGEM @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); final Postagem postagem = new Postagem(); postagem.setIdUsuario(idUsuarioLogado); caminhoArquivo = data.getData(); if (requestCode == 1 && resultCode == RESULT_OK && data != null) { Bitmap imagem = null; try { imagem = MediaStore.Images.Media.getBitmap(getContentResolver(), caminhoArquivo); ByteArrayOutputStream stream = new ByteArrayOutputStream(); imagem.compress(Bitmap.CompressFormat.PNG, 75, stream); byte[] dadosImagem = stream.toByteArray(); SimpleDateFormat dateFormat = new SimpleDateFormat("ddmmaaaahhmmss"); String nomeImagem = dateFormat.format(new Date()); final StorageReference imagemRef = firebaseStorage .child("imagens") .child("postagens") .child(postagem.getId() + ".jpeg"); UploadTask uploadTask = imagemRef.putFile(caminhoArquivo); Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() { @Override public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception { if (!task.isSuccessful()) { throw task.getException(); } // Continue with the task to get the download URL return imagemRef.getDownloadUrl(); } }).addOnCompleteListener(new OnCompleteListener<Uri>() { @Override public void onComplete(@NonNull Task<Uri> task) { if (task.isSuccessful()) { Uri downloadUri = task.getResult(); postagem.setCaminhoFoto(downloadUri.toString()); if (postagem.salvar()) { Toast.makeText(MainActivity.this, "Sucesso ao salvar postagem!", Toast.LENGTH_SHORT).show(); } } } }); } catch (IOException e) { e.printStackTrace(); } } } FeedFragment.java(onde a listagem é exibida): public class FeedFragment extends Fragment { private RecyclerView recyclerFeed; private FeedAdapter feedAdapter; private List<Feed> listaFeed = new ArrayList<>(); private ValueEventListener valueEventListenerFeed; private DatabaseReference feedRef; private String idUsuarioLogado; public FeedFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_feed, container, false); Preferencias preferencias = new Preferencias(getActivity()); idUsuarioLogado = preferencias.getIdentificador(); feedRef = ConfiguracaoFirebase.getFirebase() .child("feed") .child(idUsuarioLogado); recyclerFeed = view.findViewById(R.id.recyclerFeed); feedAdapter = new FeedAdapter(listaFeed, getActivity()); recyclerFeed.setHasFixedSize(true); recyclerFeed.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerFeed.setAdapter(feedAdapter); return view; } private void listarFeed(){ valueEventListenerFeed = feedRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot ds: dataSnapshot.getChildren()){ listaFeed.add(ds.getValue(Feed.class)); } feedAdapter.notifyDataSetChanged(); } @Override public void onCancelled(DatabaseError databaseError) { } }); } @Override public void onStart() { super.onStart(); listarFeed(); Log.i("teste","teste"); } @Override public void onStop() { super.onStop(); feedRef.removeEventListener(valueEventListenerFeed); } } fragment_feed.xml(layout do fragment): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="android" xmlns:tools="tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".fragment.FeedFragment"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerFeed" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_purple"> </android.support.v7.widget.RecyclerView> </LinearLayout> FeedAdapter.java(Adapter para fazer a listagem): public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.MyViewHolder>{ private List<Feed> listaFeed; private Context context; public FeedAdapter(List<Feed> listaFeed, Context context) { this.listaFeed = listaFeed; this.context = context; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_postagem, parent, false); return new FeedAdapter.MyViewHolder(itemLista); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { Feed feed = listaFeed.get(position); // Log.i("listaFeedPosition","listaFeed: " + listaFeed.get(position)); Uri uriFotoPostagem = Uri.parse(feed.getFotoPostagem()); Glide.with(context).load(uriFotoPostagem).into(holder.fotoPostagem); } @Override public int getItemCount() { return listaFeed.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { ImageView fotoPostagem; public MyViewHolder(View itemView) { super(itemView); fotoPostagem = itemView.findViewById(R.id.image_lista_postagem); } } } Feed(model com os getter and setter): public class Feed { private String id; private String fotoPostagem; public Feed() { } public String getFotoPostagem() { return fotoPostagem; } public void setFotoPostagem(String fotoPostagem) { this.fotoPostagem = fotoPostagem; } public String getId() { return id; } public void setId(String id) { this.id = id; } } lista_conversa(layout da lista): <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image_lista_postagem" android:layout_width="match_parent" android:layout_height="300dp" android:scaleType="fitCenter" android:padding="8dp"/> </LinearLayout> </RelativeLayout>
  24. Euler Belfortt

    Help Slider Url Android

    Olá pessoal alguém pode me ajudar? Preciso abrir uma url ao clicar em uma imagem dentro de um textsliderview Se alguém puder me ajudar fico grato. textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() { @Override public void onSliderClick(BaseSliderView slider) { String url = "http://www.google.com"; // Preciso passar a slider_url aqui Toast.makeText(getActivity(), "ID '" + name.get("slider_url")+"' url '"+ name.get("slider_url") + "' url recebida.", Toast.LENGTH_LONG).show(); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } });
  25. Euler Belfortt

    Slider Android Studio - Como abrir Url ao capturar o click

    Olá bom dia. Tenho uma aplicação android na qual tenho um slider que pego os dados do webserver php. Gostaria de saber como faço para abrir a url vinda do banco de dados, quando a imagem for clicada. Este é meu código eu fiz o código pegando como base uma URL fixa de uma variavel local. mas preciso pegar o a url que vem do banco seria a var = slider_url Se alguém puder me ajudar fico muito grato! private void makeGetSliderRequest() { JsonArrayRequest req = new JsonArrayRequest(BaseURL.GET_SLIDER, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { Log.d(TAG, response.toString()); try { // Parsing json array response // loop through each json object // arraylist list variable for store data; final ArrayList<HashMap<String, String>> listarray = new ArrayList<>(); for (int i = 0; i < response.length(); i++) { JSONObject jsonObject = (JSONObject) response .get(i); final HashMap<String, String> url_maps = new HashMap<String, String>(); url_maps.put("slider_title", jsonObject.getString("slider_title")); url_maps.put("slider_image", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_image")); url_maps.put("slider_url", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_url")); listarray.add(url_maps); } for (HashMap<String, String> name : listarray) { final TextSliderView textSliderView = new TextSliderView(getActivity()); // initialize a SliderLayout textSliderView .description(name.get("slider_title")) .image(name.get("slider_image")) .setScaleType(BaseSliderView.ScaleType.Fit); //adiciono o slider title no slider textSliderView.bundle(new Bundle()); textSliderView.getBundle() .putString("extra", name.get("slider_title")); imgSlider.addSlider(textSliderView); textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() { @Override // Aqui eu capturo o clique na imagem e abro a url. // Preciso pegar a url desta string (slider_url) e inserir no lugar da string url public void onSliderClick(BaseSliderView slider) { String url = "http://www.google.com.br"; Toast.makeText(getActivity(), "clicou:", Toast.LENGTH_SHORT).show(); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } }); } } catch (JSONException e) { e.printStackTrace(); Toast.makeText(getActivity(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show(); } hidepDialog(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " + error.getMessage()); Toast.makeText(getActivity(), error.getMessage(), Toast.LENGTH_SHORT).show(); hidepDialog(); } }); // Adding request to request queue AppController.getInstance().addToRequestQueue(req); }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.