Jump to content

Search the Community

Showing results for tags 'android'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • 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

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 154 results

  1. Bom dia pessoal. Estamos com uma dúvida aqui na empresa, preciso da ajuda de vocês. Na nossa aplicação, precisamos que o usuário escolha se quer ouvir os sons do app ou não, pois é um aplicativo para também ser usado em sala de aula (o volume pode atrabaplhar). Criamos um AlertDialog para ser executado e o usuário decidir se baixa ou não o volume, assim: AlertDialog.Builder dlg = new AlertDialog.Builder(ActDinamica.this); dlg.setTitle("Bem Vindo!"); dlg.setMessage("Você está em aula?"); dlg.setPositiveButton("Sim", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Mute(); } }); dlg.setNegativeButton("Não", null); dlg.show(); E preciso configurar o método Mute(); para o volume do áudio de mídia do celular ser zero. Método: private void Mute() { // codigo para o volume zerar? } Encontramos somente métodos para parar áudios específicos que estavam sendo executados...
  2. João Batista Neto

    Android DevConference

    until
    O iMasters Android DevConference 2017 reúne cerca de 1.200 programadores brasileiros e estrangeiros em São Paulo, para palestras nacionais e internacionais, workshops, áreas de comunidade e diversas ações de networking, divididos em dois dias de muito conteúdo. Acompanhe as novas informações no portal e nas nossas redes sociais: Facebook, Twitter e Instagram. Site do evento: http://androidconference2017.imasters.com.br/
  3. Gala galera, Gostaria de trazer em primeira mão para vocês uma ferramenta que o AndroidPro está trazendo em portuguẽs para o Brasil. Essa ferramenta é open source, feita por um engenheiro do Google e nós estamos traduzindo e vamos manter ela em portugês. O Android Asset Studio é uma ferramenta para ajudar os desenvolvedores Android a gerarem imagens e icones responsivos para o seus aplicativos Android. A ferramenta ainda conta com alguns pequenos bugs, tanto de funcionalidade, quanto de tradução. Mas, estamos acompanhando o repositório, contribuindo e melhorando a tradução. Compartilhem!
  4. Victor Penna

    Programando API Rest no Codeigniter?

    Bom dia pessoal, sou novo no fórum mas tenho lido bastante ultimamente já que ele tem me ajudado no meu aprendizado. Indo direto ao assunto, eu e um grupo de amigos começamos a criar um aplicativo para smartphones e nos organizamos para deixa-lo completo. Nós dividimos em 3 partes, aplicação(Android),conexão(webservice) e site. Eu fiquei com o webservice e comecei a montar um utilizando o CODEIGNITER. A principio tenho um conhecimento medio em php, o que me já tinha me dado uma direção como fazer e comecei... Hoje tenho uma parte da API, porém tem 2 funções(GET e POST) que não funcionam direito, será que poderia me ajudar nisso? 1. GET: require APPPATH . 'libraries/REST_Controller.php'; class Api extends REST_Controller{ public function __construct(){ parent::__construct(); $this->load->database('banco'); $this->load->model('Api_modelo'); // $this->load->helper(); } public function perfil_get(){ $info = $this->get(); // $json = file_get_contents('php://input'); $data = json_decode($info); $usuario_id = $data; $usuario = $this->Api_modelo->get_usuario($usuario_id); $this->response(json_encode($usuario)); } 2.POST: require APPPATH . 'libraries/REST_Controller.php'; class Api extends REST_Controller{ public function __construct(){ parent::__construct(); $this->load->database('banco'); $this->load->model('Api_modelo'); // $this->load->helper(); } public function validacao_post(){ $info = $this->post(); // $json = file_get_contents('php://input'); $data = json_decode($info); $login_valido = $data; $login_valido = $this->Api_modelo->validar_usuario($login_valido); if($login_valido == true){ $mensagem = 'Logado com sucesso'; $this->response(json_encode($mensagem)); }else{ $mensagem = null; $this->response(json_encode($mensagem)); } } 3. MODEL:defined('BASEPATH') OR exit('No direct script access allowed'); public $id; public $login; public $senha; public $ativo; public $nome; public $endereço; public $telefone; public $bairro; class Api_modelo extends CI_Model { public function get_usuario($id){ $this->db->where(array('id'=>$id, 'ativo'=>1)); $query = $this->db->get('SELECT `nome`, `email`, `endereco`, ` telefone`, `bairro`, FROM `consumidores` WHERE ativo => 1'); $row = $query->custom_row_object(0, 'Api_modelo'); return $row; } public function validar_usuario($login_valido){ foreach($login_valido->usuarios as $campo){ $campo->unset('login')->$login; $campo->unset('senha')->$senha; } $this->db->from('comsumidores'); $this->db->where("login" => $login); $this->db->where("senha" => $senha); if(isset()) $usuario = $this->db->get("usuario")->row_array(); return $login_valido; } } OBS: Meu conhecimento em php não é muito profundo, contudo entendo a linguagem e sei programar. Essa minha primeira vez montando um framework, realmente gostei muito sei que o codeigniter não é pratico para serviços "REST", porém alguns caras adaptaram isso nele e já configurei de acordo. Um dos meus maiores problemas, é mais a comunicação com android, pois entendo que o aplicativo precisa de um link para enviar os dados, mas como fazer o php pegar essas dados não tenho certeza. Como vêem no código acima, estou tentando capturar o código com '$info = this->get;'. 4.Se tiverem tutoriais bacanas referente a esse tema, ficaria muito grato pois dá ficar perdido pra caramba. No mais, fico no aguardo. Grato atenção de todos. Esperando ajuda do grupo.
  5. Fala galeraaaa, blzs? Viram essa lista de jogos indie gratis que a galera desenvolveu? > Lista de Jogos Indie Gratuitos Ficaram muito show, os que eu mais gostei foram: POLY LAKE WAR OF INSECTS NUCLEAR FART GAME SUPER FLUFFY FORCE Parece que esses jogos sairam dos alunos do Produção de Jogos. Quais vocês gostaram mais? Abraços.
  6. Cacio Renato

    Monitorar arquivo

    Boa tade, Sou novo nessa linguagem estou tentando fazer a seguinte situação , monitorar arquivo no android , ao inserir um arquivo em um pasta definida quando eu gravar o arquivo la ele fazer vim o caminho com o nome do arquivo e extensão, ouvi falar do fileobserver mas tentei fazer com alguns modelos mas não tive exito , alguém tem um exemplo ou pode me ajudar nesse quesito .
  7. Olá pessoal comecei a desenvolver apps híbridas utilizando Ionic + Cordova tudo está indo bem. Criei uma nova aplicação ionic e fui adicionar a plataforma android com o comando: ionic platform add android. mas tive o seguinte erro: Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually. Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory. meu ~/.bashrc está assim: JAVA_HOME=/usr/lib/jvm/java-8-oracle export JAVA_HOME PATH=$PATH:$JAVA_HOME export ANDROID_HOME=/home/meuuser/Android/Sdk export ANDROID_TOOLS=/home/meuuser/Android/Sdk/tools export ANDROID_PLATFORM_TOOLS=/home/meuuser/Android/Sdk/platform-tools export PATH=${PATH}:/home/meuuser/android-sdk-linux/platform-tools export PATH=${PATH}:/home/meuuser/android-sdk-linux/tools Não sei o porque do erro. Uso o Ubuntu 16.04 64bits
  8. aDRIANO77

    Arquivo Z - Android

    Eai galera, estamos lançando a demonstração de nosso jogo Arquivo Z para Mobile, acompanhem: Breve Historia: A história ocorre em uma cidade fictícia e tudo acontece quando um cientista sem querer errou em sua formula e o ocasionou uma infecção. A consequência da infecção é a mutação genética do cientista o tornando um Zumbi, então seu objetivo é coletar todas as chaves e fugir dos policiais para não ser pego, perdendo o jogo. Breve Descrição: Arquivo Z se trata de um jogo estilo labirinto, onde se passa em uma cidade, nela você devera encontrar as três chaves e a porta para passar de fase. Porem, você terá que tomar cuidado para não ser capturado por policiais que estão na cidade. Link na Google Play: https://play.google.com/store/apps/details?id=com.RFS.ProjectZ&hl=pt_BR
  9. everton881

    Fragment da erro

    Minha aplicação da erro ao abrir em um tablet e não consigo identificar o erro ele informa que tenho que habilitar: Unable to start activity ComponentInfo{com.example.everton.horoscopo/com.example.everton.horoscopo.MainActivity}: android.view.InflateException: Binary XML file line #15: Binary XML file line #15: Error inflating class fragment. Não entendi o erro segue os código se alguém pode me ajudar agradeço esse projeto é para o fim desse mês. MaindActivity: package com.example.everton.horoscopo; public class MainActivity extends AppCompatActivity { HoroscopoDetailFragment horoscopoDetailFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(istablet()){ Log.d("Fragment", "entrou!!"); Fragment fragment = new Fragment(); HoroscopoDetailFragment horoscopoDetailFragment = new HoroscopoDetailFragment(); /* FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.frag_detalhe, fragment ); ft.commit();*/ HoroscopoDetailFragment horoscopoDetailFragment1 = new HoroscopoDetailFragment(); getSupportFragmentManager() .beginTransaction() .replace(R.id.frag_detalhe, fragment) .commit(); }else{ Toast.makeText(this, "não é Tablet", Toast.LENGTH_SHORT).show(); } } private boolean istablet(){ return getResources().getBoolean(R.bool.tablet); } private boolean isSmartphone(){ return getResources().getBoolean(R.bool.smartphone); } } Layout do tablet <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.everton.horoscopo.MainActivity"> <fragment android:layout_width="409dp" android:layout_height="match_parent" android:name="com.example.everton.horoscopo.fragments.HoroscopoListFragment" android:id="@+id/fragmentLista"/> <fragment android:layout_width="409dp" android:layout_height="match_parent" android:name="com.example.everton.horoscopo.fragments.HoroscopoDetailFragment" android:id="@+id/fragmentDetail"/> </RelativeLayout> Activity do detalhe package com.example.everton.horoscopo; public class HoroscopoDetailActivity extends AppCompatActivity { HoroscopoRepositorio horoscopoRepositorio; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_horoscopo_item); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); horoscopoRepositorio = new HoroscopoRepositorio(this); Intent intent = getIntent(); String id = intent.getStringExtra("Horosc"); Cursor cursor = horoscopoRepositorio.consulta(HoroscopoContract._ID + " =" + id); cursor.moveToFirst(); int icone = cursor.getInt(cursor.getColumnIndex(HoroscopoContract.COL_ICONE)); String signo = cursor.getString(cursor.getColumnIndex(HoroscopoContract.COL_SUNSIGN)); ImageView img = (ImageView) findViewById(R.id.detail_icone); CollapsingToolbarLayout collapser = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout); Resources res = this.getResources(); TypedArray logos = res.obtainTypedArray(R.array.logos); img.setImageDrawable(logos.getDrawable(icone)); collapser.setTitle(signo); } } Fragment do detail /** * Created by everton.vasconcelos on 23/09/2016. */ public class HoroscopoDetailFragment extends Fragment { HoroscopoRepositorio horoscopoRepositorio; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_detail, container, false); horoscopoRepositorio = new HoroscopoRepositorio(getActivity()); Intent intent = getActivity().getIntent(); String id = intent.getStringExtra("Horosc"); Cursor cursor = horoscopoRepositorio.consulta(HoroscopoContract._ID + " =" + id); cursor.moveToFirst(); String msg = cursor.getString(cursor.getColumnIndex(HoroscopoContract.COL_MESSAGEM)); String data = cursor.getString(cursor.getColumnIndex(HoroscopoContract.COL_DATA)); TextView txtData = (TextView) view.findViewById(R.id.frag_item_data); TextView msge = (TextView) view.findViewById(R.id.frag_item_msg); msge.setText(msg); txtData.setText(data); return view; } } Layout do detail fragment <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView 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" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context=".HoroscopoDetailActivity" android:background="@color/black" tools:showIn="@layout/activity_horoscopo_item"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:id="@+id/horosc_detalhe" android:padding="10dp"> <fragment android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.example.everton.horoscopo.fragments.HoroscopoDetailFragment" android:id="@+id/frag_detalhe"/> </LinearLayout> </android.support.v4.widget.NestedScrollView> No smartphone funciona só da erro ao chamar o layout do tablet.
  10. manoelps

    Post request com Retrofit + Android

    Olá pessoal, estou estudando android, e estou tentando usar a biblioteca retrofit com android. Após ler a documentação consegui fazer envio de dados de um formulario via POST para uma página escrita em php, e receber o retorno (em formato JSON), porém não consigo receber todos os dados, recebo só o primeiro, e eu gostaria de receber toda a lista de usuários que eu colocar na pagina, segue meu codigo abaixo: Dependências: compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' MainActivity (dentro de um botão): Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://192.168.101.36/json/") .addConverterFactory(GsonConverterFactory.create()) .build(); ApiService apiService = retrofit.create(ApiService.class); Call<User> call = apiService.validateUser(inputEmail.getText().toString(), inputSenha.getText().toString()); call.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) { //Verifica se houve a conexão com sucesso ao webservice if (!response.isSuccessful()) { textView.setText("ERROR onResponde: " + response.code()); } else { //requisição retona os dados com sucesso String email = response.body().getEmail(); String senha = response.body().getPassword(); textView.append("email: " + email + " - senha: " + senha + "\n"); } } @Override public void onFailure(Call<User> call, Throwable t) { t.printStackTrace(); textView.setText(t.getMessage()); } }); Interface: public interface ApiService { @FormUrlEncoded @POST("index.php") Call<User> validateUser( @Field("username") String username, @Field("password") String password ); } Classe User: public class User { private int id; private String error, error_msg, username, email, password; public String getError(){ return this.error; } public String getError_msg(){ return this.error_msg; } public int getId(){ return this.id; } public String getUsername(){ return this.username; } public String getPassword(){ return this.password; } public String getEmail(){ return this.email; } } Index.php $email = $_POST['username']; $senha = $_POST['password']; echo ' { "email":"'.$email.'", "password":"'.$senha.'" }, { "email":"'.$email.'", "password":"'.$senha.'" }, { "email":"joselito@joselito.com", "password":"123456" } '; Att. Manoel Pereira dos Santos
  11. Google cria aplicativo de mensagens para competir com WhatsApp e Messenger
  12. Humberto - S.O.S.

    webbrowser download android

    Olá. Estou desenvolvendo um aplicativo pelo Delphi XE7, e no meio do percurso usei um Form que nele tem um WebBrowser que abre uma página com links de downloads, ao clicar no link não ocorre nada. alguém saberia me ajudar? obg.
  13. Duas vagas de programador Delphi para Curitiba. Nossos valores ficam entre R$4.200,00 e R$5.553,64. O contrato é CLT, trabalhamos das 08:00 as 18:00 de segunda a sexta, além desses valores temos VR, VA e plano de saúde. Nosso sistema é um PDV com um ERP, desenvolvemos atualmente com o Delphi Berlin (tentamos nos manter o mais atualizado em todas as ferramentas que temos) e Sql Server 2014. Temos alguns projetos para Mobile com FireMonkey e datasnap, todo (ou pelo menos quase todo) nosso código segue conceitos de orientação a objetos (trabalhamos muito com interface, criação de classes e Patterns). No nosso dia a dia dentro do escritório trabalhamos com uma adaptação do Scrum utilizando o TFS para controlar as tarefas, cada Sprint, versionamento de código e testes. Hoje nossa equipe tem quatro programadores e duas pessoas de teste. Interessados enviar e-mail para: augusto@noxautomacao.com.br
  14. jhonnyneryy

    PROJETO DE RESTAURANTE

    pessoal estou estudando delphi e queria montar um sorft para um restaurante alguem tem algum tutorial legal ou algum codigo fonte para eu da uma estudada obrigado desde já vllw
  15. Galera, a startup em que trabalho está com uma vaga para desenvolvedor android em aberto. Por favor, quem possuir github envie o link do perfil junto com o email contendo o currículo. Abraços. -- PONTOTEL Estamos buscando um desenvolvedor para início imediato. Esperamos: ● Conhecimentos sobre desenvolvimento JAVA - Android ● Conhecimentos sobre desenvolvimento Javascript (AngularJS, React) ● Vontade de programar como gente grande e conhecer o funcionamento de uma startup desde o começo ● Consciência que deve-se fazer de tudo (sem “prima-donnismos” ou braço curto) Se você não tiver conhecimentos dos primeiros pontos, mesmo assim pode entrar em contato conosco: somos super flexíveis e, quem sabe, podemos acertar algo que funcione para ambas as partes. Formação sugerida: Bacharelado em Matemática Aplicada e Computacional, Bacharelado em Ciência da Computação, Engenharias Remuneração: Variável a depender da sua experiência e momento. Conversaremos e vamos acertar algo que funcione para ambas as partes. Competitiva. O que oferecemos além de um salário? • Ambiente AAA: Estamos em um escritório próprio super-cool, no centro de São Paulo, super perto de onde você mora • Horário flexível: você escolhe quais horas do dia ou da noite quer passar aqui - desde que o prédio esteja aberto :wink: • Plano de carreira: nossa startup está crescendo e precisamos de mais gente no time para o longo prazo!) • Clima descontraido, democrático e, acima de tudo, divertido. Sua experiência será super relevante: não são “monkey-jobs” E... tem algum perk? (claro que tem!) • Almoço de sexta por conta da firma! Levamos o time todo para um restaurante (pizza, hamburguer, ceviche, baião-de-dois…) • Café/chá “dos bons”! - pode ser até café Suplicy • Back to nerd times: happy hours na sexta com CS - porque a gente é dessa época, mas se tiver alguma sugestão, também está valendo. O que conta é a descontração, acompanhada de cerveja importada • Seu próprio cartão de visita com o título que você quiser ter. Pode ser Doutô, Darth Vader, Chapolim Colorado… Quem somos? O PONTOTEL é uma empresa de automação de registros trabalhistas para funcionários.Nós somos um “SaaS de RH” adaptado para as necessidades dos consumidores residenciais. A equipe de 10 pessoas é formada pelos dois sócios-engenheiros(POLI-COMP e FEI elétrica) , 3 desenvolvedores, 1 designer, um marketing e 4 pessoas de suporte/comercial. Você trabalhará diretamente com os sócios e nós vamos fazer o possível para que esse seja o trabalho mais bacana (isso mesmo) que você venha a ter. Nós todos somos desenvolvedores e lutamos para construir a empresa que sempre sonhamos em trabalhar. Envie seu currículo para dev@pontotel.com.br
  16. Ola desenvolvi um mobile app, e ja o transformei em um apk android, porem o botao de efetuar ligação com o link do numero, que chama o discar do celular nao esta funcionando no app, alguem tem alguma luz como posso resolver isso
  17. dehanalista

    Componente HSI para Android Studio

    Olá galera!!! Sou leigo em programação para Android, estou começando agora e então tenho poucas referências de locais bons para encontrar componentes e outras ferramentas. Estou precisando de um componente para o Android Studio, que já vi em algumas aplicações na Play Store. É um componente que simula uma ferramenta encontrada em aeronaves, conhecido como HSI - Horizontal Situation Indicator (ou Indicador de Situação Horizontal). Segue em anexo aí um print que dei de um app que baixei da Play. Alguém conhece e sabe me sugerir algum site que tenha tal componente para download? Desde já, muito obrigado a todos!!! Ps.: Tive problema para subir a imagem para o forum. Segue o link para visualização (um png): https://www.dropbox.com/s/i0rye711lim3wed/hsi.png?dl=0
  18. Bom Dia, Estou iniciando em android e fazendo um app basico de localizacao em tempo real do usuario. Criei uma activity basica de map, e fiz a codificacao para utilizar o gps e ir atualizando conforme o usuario se movimenta, e mostrando a localizacao no mapa de ruas. Quando simulo no meu celular o app roda e mostra o mapa, mas vejo que NAO ATIVA O GPS, quando o app abre, e consequentemente nao mostra a localizacao do usuario. Deve estar acontecendo algo com a permissao em tempo real, que eu nao sei como fazer. Pelo Log que coloquei ele entra no if da permissao. Se alguem conseguir me ajudar... Segue minha activity e meu Manifest. Activity: public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, LocationListener { private GoogleMap mMap; private Marker marcador; double lat = 0.0; double lng = 0.0; private int precisaoMinimaExigida = 2000; // Precisão do serviço de localização em metros. private int intervaloTempoLeituraGPS = 5000; // De quanto em quanto tempo (milissegundos) avisará que mudou de posição. private int distanciaLeituraGPS = 0; // De quantos em quantos metros avisará que mudou a posição. private int intervaloTempoREDE = 5000; // De quanto em quanto tempo (milissegundos) avisará que mudou de posição. private int distanciaREDE = 0; // De quantos em quantos metros avisará que mudou posição. // Define os elementos visuais para exposição das informações no dispositivo. // private EditText editTextPosicoes; // private ScrollView scroller; // Define o gerenciador de localização. private LocationManager locationManager; // Filtro para definir o evento de broadcast que o app aguardará. // No caso "android.location.LocationManager.PROVIDERS_CHANGED_ACTION". private IntentFilter filter; // Caixa de diálogo para interação com o usuário. private AlertDialog alert; // Variáveis de controle dos provedores de localização habilitados na configuração do Android. private Boolean provedorGPS_Habilitado; private Boolean provedorREDE_Habilitado; // Cria um Broadcast Receiver para que a MainActivity seja avisada caso o usuário mude as configurações de localização por fora do app // (deslizando a tela para baixo e clicando no ícone do GPS, por exemplo). // Isso é necessário porque durante a execução, o usuário tem como mudar as configurações de localização sem usar o próprio aplicativo. BroadcastReceiver bReceiver = new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { // Chama o método que localiza o usuário. localizarUsuario(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); /////// // Registra o receiver para que o app seja avisado quando o usuário modificar as configurações de localização do dispositivo. filter = new IntentFilter(android.location.LocationManager.PROVIDERS_CHANGED_ACTION); this.registerReceiver(bReceiver, filter); localizarUsuario(); } public void localizarUsuario() { // Este método efetivamente realiza a localização do usuário, configurando um "locationManager". // Através do locationManager o dispositivo utiliza ou o GPS ou a REDE para descobrir a localização // do usuário. Note que, na configuração do aparelho, podem estar habilitados ambos os métodos, // algum deles, ou nenhum. Para cada caso, uma mensagem de alerta deverá ser mostrada, // questionando o usuário se deseja ligar as ferramentas de localização. try { // Obtém o locationManager. locationManager = (LocationManager) getSystemService(getApplicationContext().LOCATION_SERVICE); // Há provedores de localização diversos. // O GPS_PROVIDER usa o hardware de GPS dispositivo para obter localização via satélite. // O NETWORK_PROVIDER obterá a localização a partir da triangulação de antenas da rede de telefonia celular. // Verifica se os provedores de localização estão habilitados. provedorREDE_Habilitado = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); provedorGPS_Habilitado = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // Caso não haja nenhum provedor de localização habilitado... if (!provedorREDE_Habilitado && !provedorGPS_Habilitado) { Log.i("PROVEDORES","NAO ESTAO HABILITADOS"); // Não há provedores de localização habilitados. // Perguntar ao usuário se deseja habilitar. // Monta a caixa de diálogo. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder .setMessage("O serviço de localização está desabilitado. Deseja mudar a configuração?") .setCancelable(false) .setPositiveButton("Configurar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { abreConfiguracaoDoDispositivo(); } }); alertDialogBuilder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); // editTextPosicoes.setText("Selecione uma forma de obter a localização\npelo menu Configurar."); } }); alert = alertDialogBuilder.create(); // Mostra a caixa de diálogo. if (!alert.isShowing()) { alert.show(); } } else { Log.i("PROVEDORES"," ESTAO HABILITADOS"); // Se serviço de localização já foi configurado... if (provedorGPS_Habilitado) { configuraProvedorGPS(); Log.i("CONFIGURANDO GPS","CONFIGURANDO GPS"); } else { // Caso apenas o serviço de localização por REDE esteja habilitado, sugere o GPS. // Monta a caixa de diálogo. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder .setMessage("Gostaria de habilitar o GPS para uma precisão maior?") .setCancelable(false) .setPositiveButton("Sim", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { abreConfiguracaoDoDispositivo(); } }); alertDialogBuilder.setNegativeButton("Não", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); configuraProvedorREDE(); } }); alert = alertDialogBuilder.create(); // Mostra a caixa de diálogo. if (!alert.isShowing()) { alert.show(); } } } } catch (Exception e) { Log.i("gps", e.getMessage() + " " + e.getLocalizedMessage()); } } public void abreConfiguracaoDoDispositivo() { // Este método abre a tela de congifuração de localização do dispositivo. Intent callGPSSettingIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); (this).startActivity(callGPSSettingIntent); } public void configuraProvedorGPS() { // minTimeGPS é de quanto em quanto tempo (em milissegundos), a informação da localização será atualizada via GPS. // minDistanceGPS é de quantos em quantos metros a informação da localização será atualizada via GPS. long minTimeGPS = intervaloTempoLeituraGPS; long minDistanceGPS = distanciaLeituraGPS; locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTimeGPS, minDistanceGPS, this); Log.i("GPS CONFIGURADOOOO","GPS CONFIGURADOOOO"); // Configura o locationManager para chamar o método OnLocationChanged() de acordo com as premissas estabelecidas. if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { Log.i("SEM PERMISSAO","SEM PERMISSAO"); return; } } public void configuraProvedorREDE() { // minTimeNETWORK é de quanto em quanto tempo (em milissegundos), a informação da localização será atualizada via triangulação de antenas. // minDistanceNETWORK é de quantos em quantos metros a informação da localização será atualizada via via triangulação de antenas. long minTimeNETWORK = intervaloTempoREDE; long minDistanceNETWORK = distanciaREDE; // Configura o locationManager para chamar o método OnLocationChanged() de acordo com as premissas estabelecidas. if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, minTimeNETWORK, minDistanceNETWORK, this); } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; } private void agregarMarcador(double lat, double lng) { LatLng coordenadas = new LatLng(lat, lng); CameraUpdate miUbicacion = CameraUpdateFactory.newLatLngZoom(coordenadas, 16); if (marcador != null) marcador.remove(); marcador = mMap.addMarker(new MarkerOptions() .position(coordenadas) .title("Minha Posicao atual") .icon(BitmapDescriptorFactory.fromResource(android.R.mipmap.sym_def_app_icon))); mMap.animateCamera(miUbicacion); } private void actualizarUbicacion(Location location) { if (location != null) { lat = location.getLatitude(); lng = location.getLongitude(); agregarMarcador(lat, lng); } } @Override public void onLocationChanged(Location location) { // Este método será chamado toda vez que houver uma atualização da localização do usuário. // A atualização da localização ocorre de acordo com o configurado no locationManager. try { // Obtém a informação da precisão da localização, em metros. float precisao=location.getAccuracy(); // Se a precisão for menor ou igual à precisão mínima exigida (em metros), então mostra a localização na tela. // A precisão mínima exigida depende da aplicação. if (precisao <= precisaoMinimaExigida) { actualizarUbicacion(location); } } catch (Exception e) { } } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override protected void onDestroy() { super.onDestroy(); // Desregistra o Broadcast Receiver. unregisterReceiver(bReceiver); } } ============================ Manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="goodeal.localizacaousuarios2"> <!-- The ACCESS_COARSE/FINE_LOCATION permissions are not required to use Google Maps Android API v2, but you must specify either coarse or fine location permissions for the 'MyLocation' functionality. --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.LOCATION_HARDWARE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- The API key for Google Maps-based APIs is defined as a string resource. (See the file "res/values/google_maps_api.xml"). Note that the API key is linked to the encryption key used to sign the APK. You need a different API key for each encryption key, including the release key that is used to sign the APK for publishing. You can define the keys for the debug and release targets in src/debug/ and src/release/. --> <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> <activity android:name=".MapsActivity" android:label="@string/title_activity_maps"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
  19. Tenho uma aplicação chamada SASMobile e estou com problemas para fazer funcionar o street view, conforme o título da pergunta. No eclipse, em configuração do projeto android, estou usando Google APis, Plataform 5.1.1 e API Level 22. Activity: ExibeMapaStreetView.java package br.com.lemarq.sas; import java.io.IOException; import java.util.List; import java.util.Locale; import com.google.android.gms.maps.StreetViewPanorama; import com.google.android.gms.maps.StreetViewPanoramaFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.maps.GeoPoint; import android.content.Context; import android.content.Intent; import android.location.Address; import android.location.Geocoder; import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class ExibeMapaStreetView extends FragmentActivity { private LatLng latLng; private String endereco = ""; private Double la = 0.0; private Double lo = 0.0; public static Context ctx; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mapastreetview); // nome do Licenciado do Sistema try { Licenciado licenciado = new Licenciado(ExibeMapaStreetView.this); this.setTitle(licenciado.getLicenciado()); } catch (Exception e) { } Intent intent = getIntent(); try {endereco = (String) intent.getSerializableExtra("enderecoCompleto");} catch (Exception e) {endereco = null;} try {la = (Double) intent.getSerializableExtra("latitude");} catch (Exception e) {la = 0.0;} try {lo = (Double) intent.getSerializableExtra("longitude");} catch (Exception e) {lo = 0.0;} if (la == 0.00 && lo == 0.00) { GeoPoint geoPoint = localizaEnderecoMaps(ExibeMapaStreetView.this,endereco); la = geoPoint.getLatitudeE6() / 1E6; lo = geoPoint.getLongitudeE6()/ 1E6; } if (la == 0.0 || lo == 0.0) { latLng = new LatLng(-23.561706,-46.655981); } else { latLng = new LatLng(la, lo); } StreetViewPanoramaFragment streetViewFragment = (StreetViewPanoramaFragment) getFragmentManager().findFragmentById(R.id.mapst); StreetViewPanorama streetViewPanorama = streetViewFragment.getStreetViewPanorama(); streetViewPanorama.setPosition(latLng); } @Override protected void onResume() { super.onResume(); //configuraPosicao(map, latLng, tipoMapa); } public static GeoPoint localizaEnderecoMaps(Context ctx, String endereco) { GeoPoint p = null; Geocoder geoCoder = new Geocoder(ctx, Locale.getDefault()); try { List<Address> addresses = geoCoder.getFromLocationName(endereco, 1); if (addresses.size() > 0) { p = new GeoPoint( (int) (addresses.get(0).getLatitude() * 1E6), (int) (addresses.get(0).getLongitude() * 1E6)); return p; } } catch (IOException e) { e.printStackTrace(); } return p; } } XML: mapastreetview.xml <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <fragment android:id="@+id/mapst" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.StreetViewPanoramaFragment"/> AndroidManifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.lemarq.sas" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" /> <permission android:name="br.com.lemarq.sas.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="br.com.lemarq.sas.permission.MAPS_RECEIVE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_OWNER_DATA" /> <uses-permission android:name="android.permission.READ_OWNER_DATA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:testOnly="false"> <uses-library android:name="com.google.android.maps" /> <activity android:name="br.com.lemarq.sas.Splash" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="br.com.lemarq.sas.Login" /> <activity android:name="br.com.lemarq.sas.Principal" /> <activity android:name="br.com.lemarq.sas.ExibeMapa" /> <activity android:name="br.com.lemarq.sas.ExibeMapaStreetView" /> <activity android:name="br.com.lemarq.sas.ClienteLista" /> <activity android:name="br.com.lemarq.sas.ClienteCad" /> <activity android:name="br.com.lemarq.sas.ProdutoLista" /> <activity android:name="br.com.lemarq.sas.Consultas" /> <activity android:name="br.com.lemarq.sas.VendedorLista" /> <activity android:name="br.com.lemarq.sas.CondpagLista" /> <activity android:name="br.com.lemarq.sas.ModalidadeLista" /> <activity android:name="br.com.lemarq.sas.PedLista" /> <activity android:name="br.com.lemarq.sas.PedCadastro" /> <activity android:name="br.com.lemarq.sas.PedItens" /> <activity android:name="br.com.lemarq.sas.PedItensCad" /> <activity android:name="br.com.lemarq.sas.PedEncerra" /> <activity android:name="br.com.lemarq.sas.PedCancela" android:label="Confirma o Cancelamento ?" android:theme="@android:style/Theme.Dialog"/> <activity android:name="br.com.lemarq.sas.Sincronizar" /> <activity android:name="br.com.lemarq.sas.SyncCliente" /> <activity android:name="br.com.lemarq.sas.SyncCondpag" /> <activity android:name="br.com.lemarq.sas.SyncModalidade" /> <activity android:name="br.com.lemarq.sas.SyncPed" /> <activity android:name="br.com.lemarq.sas.SyncPedItem" /> <activity android:name="br.com.lemarq.sas.SyncProduto" /> <activity android:name="br.com.lemarq.sas.SyncVendedor" /> <activity android:name="br.com.lemarq.sas.PesquisaCliente" /> <activity android:name="br.com.lemarq.sas.EmpresaCad" /> <activity android:name="br.com.lemarq.sas.WebService" /> <activity android:name="br.com.lemarq.sas.TelaSmad" android:label="Digite a Senha" android:theme="@android:style/Theme.Dialog" /> <activity android:name="br.com.lemarq.sas.Licenciado" /> <activity android:name="br.com.lemarq.sas.EnviandoSMS" android:label="Digite a Mensagem" android:theme="@android:style/Theme.Dialog" /> <activity android:name="br.com.lemarq.sas.AvisoSync" android:label="Confirma a Transmissão ?" android:theme="@android:style/Theme.Dialog"/> <activity android:name="br.com.lemarq.sas.UltimasVendasCli" /> <activity android:name="br.com.lemarq.sas.UltimasVendasVend" /> <activity android:name="br.com.lemarq.sas.TitulosAberto" /> <activity android:name="br.com.lemarq.sas.LiberaPedido" android:label="Informe o Código" android:theme="@android:style/Theme.Dialog" /> <!-- Goolge API Key --> <!-- chave antiga, mudada em 15/06/2016 android:value="AIzaSyCtNbwC9o7EUSGZ5cv-MWE_hZTXkRVprCM" /> --> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyD9kmqAfWUHX_WuIu9_YHi-RsfK4TsNR9Q"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest> Log.txt 6-23 11:17:24.435: D/ViewRootImpl(15624): ViewPostImeInputStage ACTION_DOWN 06-23 11:17:24.625: I/Timeline(15624): Timeline: Activity_launch_request id:br.com.lemarq.sas time:7389625 06-23 11:17:24.625: D/InputMethodManager(15624): windowDismissed mLockisused = false 06-23 11:17:24.655: E/ViewRootImpl(15624): sendUserActionEvent() mView == null 06-23 11:17:24.655: W/ResourcesManager(15624): getTopLevelResources: /data/app/br.com.lemarq.sas-1/base.apk / 1.0 running in br.com.lemarq.sas rsrc of package null 06-23 11:17:24.665: D/PhoneWindow(15624): *FMB* installDecor mIsFloating : false 06-23 11:17:24.665: D/PhoneWindow(15624): *FMB* installDecor flags : 8454400 06-23 11:17:24.665: D/AndroidRuntime(15624): Shutting down VM 06-23 11:17:24.675: E/AndroidRuntime(15624): FATAL EXCEPTION: main 06-23 11:17:24.675: E/AndroidRuntime(15624): Process: br.com.lemarq.sas, PID: 15624 06-23 11:17:24.675: E/AndroidRuntime(15624): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.lemarq.sas/br.com.lemarq.sas.ExibeMapaStreetView}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3150) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3260) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.access$1000(ActivityThread.java:218) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.os.Handler.dispatchMessage(Handler.java:102) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.os.Looper.loop(Looper.java:145) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.main(ActivityThread.java:6934) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.reflect.Method.invoke(Native Method) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.reflect.Method.invoke(Method.java:372) 06-23 11:17:24.675: E/AndroidRuntime(15624): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 06-23 11:17:24.675: E/AndroidRuntime(15624): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.inflate(LayoutInflater.java:511) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.inflate(LayoutInflater.java:366) 06-23 11:17:24.675: E/AndroidRuntime(15624): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:450) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Activity.setContentView(Activity.java:2400) 06-23 11:17:24.675: E/AndroidRuntime(15624): at br.com.lemarq.sas.ExibeMapaStreetView.onCreate(ExibeMapaStreetView.java:33) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Activity.performCreate(Activity.java:6609) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3103) 06-23 11:17:24.675: E/AndroidRuntime(15624): ... 10 more 06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.StreetViewPanoramaFragment: make sure class name exists, is public, and has an empty constructor that is public 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Fragment.instantiate(Fragment.java:632) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Fragment.instantiate(Fragment.java:596) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2126) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Activity.onCreateView(Activity.java:5850) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:740) 06-23 11:17:24.675: E/AndroidRuntime(15624): ... 20 more 06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.StreetViewPanoramaFragment" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/br.com.lemarq.sas-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 06-23 11:17:24.675: E/AndroidRuntime(15624): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 06-23 11:17:24.675: E/AndroidRuntime(15624): at android.app.Fragment.instantiate(Fragment.java:618) 06-23 11:17:24.675: E/AndroidRuntime(15624): ... 24 more 06-23 11:17:24.675: E/AndroidRuntime(15624): Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.maps.StreetViewPanoramaFragment 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.Class.classForName(Native Method) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 06-23 11:17:24.675: E/AndroidRuntime(15624): at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 06-23 11:17:24.675: E/AndroidRuntime(15624): ... 26 more 06-23 11:17:24.675: E/AndroidRuntime(15624): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
  20. sowmatheus

    Problema - Site - Mobile - Android

    Boa noite, Estou finalizando o site: http://mineracaogalvao.com.br Só que surgiu um problema... Identifiquei que para acesso via Mobile especificamente Android's A visualização da pagina não esta obedecendo os dimensionamentos pre-definidos. Acaba que so consigo acessar no menu a aba "História". Vale a observação que para iOs - Safari a visualização acontece normal utilizando: <meta name="viewport" content="width=device-width, initial-scale=1.0"> Sou novo nessa área, alguém poderia me ajudar ? Visualização problemática no Android: Att, Matheus Gurgel.
  21. Pessoal, peço ajuda. Estou iniciando em android... e fazendo um app basico, iniciando pelo cadastro de usuario...mas nao cria a tabela "usuario" e nem grava no banco... Segue as classes: public class DBHelper extends SQLiteOpenHelper { private static String DB_NAME = "goodeal_c2c"; private static int DB_VERSION = 1; private static String TABLE_USUARIO = "CREATE TABLE usuario( _id integer primary key autoincrement," + "nome text"+")"; public DBHelper(Context context){ super(context,DB_NAME,null,DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(TABLE_USUARIO); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE usuario"; db.execSQL(sql); } } ==== public class DBUsuarioManager { private static DBHelper dbHelper = null; public DBUsuarioManager(Context context) { dbHelper = new DBHelper(context); } public void addUsuario(UsuarioTO usuarioTO){ ContentValues contentValues = new ContentValues(); contentValues.put("nome",usuarioTO.getNome()); SQLiteDatabase db = dbHelper.getWritableDatabase(); db.insert("usuario",null,contentValues); db.close(); } public ArrayList<UsuarioTO> selecionaUsuarios(){ SQLiteDatabase db = dbHelper.getReadableDatabase(); String sql = "SELECT * FROM usuario"; Cursor cursor = db.rawQuery(sql,null); ArrayList<UsuarioTO> usuarios = null; UsuarioTO usuarioTO = null; if(cursor != null && cursor.moveToFirst()){ usuarios = new ArrayList<UsuarioTO>(); usuarioTO = new UsuarioTO(); do{ usuarioTO.set_id(Integer.valueOf(cursor.getInt(0))); usuarioTO.setNome(cursor.getString(1)); usuarios.add(usuarioTO); }while (cursor.moveToNext()); } return usuarios; } public UsuarioTO selecionaUsuario(Integer _id){ SQLiteDatabase db = dbHelper.getReadableDatabase(); String sql = "SELECT * FROM usuarios WHERE _id = "+_id; Cursor cursor = db.rawQuery(sql,null); UsuarioTO usuarioTO = null; if(cursor != null && cursor.moveToFirst()){ usuarioTO = new UsuarioTO(); do{ usuarioTO.set_id(Integer.valueOf(cursor.getString(0))); usuarioTO.setNome(cursor.getString(1)); }while (cursor.moveToNext()); } return usuarioTO; } } ==== public class ActivityCadastrar extends AppCompatActivity { private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; private static final Pattern pattern = Pattern.compile(EMAIL_PATTERN, Pattern.CASE_INSENSITIVE); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cadastrar); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Id correspondente ao botão Up/Home da actionbar case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } public void btnAvancar1(View view){ boolean validados = true; EditText primeiroNome = (EditText)findViewById(R.id.txtPrimeiroNome); String pNome = primeiroNome.getText().toString(); if(pNome == null || pNome.equals("") || pNome.replace("\\D","").equals("") || pNome.trim().length() <= 2){ validados = false; primeiroNome.setError("Obrigatório"); } if(validados){ //gravar no banco UsuarioTO usuarioTO = new UsuarioTO(); usuarioTO.setNome(pNome); DBUsuarioManager dbUsuarioManager = new DBUsuarioManager(this); dbUsuarioManager.addUsuario(usuarioTO); Intent pgtoReceb = new Intent(this,ActivityRecebimentoPagamento.class); startActivity(pgtoReceb); } } public static boolean validarEmail(String email){ Matcher matcher = pattern.matcher(email); return matcher.matches(); } } ========================= Peço ajuda...obrigado.
  22. To tentando criar meu primeiro app android, escolhi tentar fazer um bloco de notas, criei aquele botão flutuante com um +, quero fazer aparecer uma caixa de dialogo com um campo para digitar, alguem sabe como fazer isso ? ou então algum componente pra eu pesquisar mais sobre ?
  23. Estou fazendo um formulário para rodar no celular(Android), e eu quero que a pessoa preencha os inputs e clique no botão "Salvar", ai o app criará um arquivo texto com os valores dos inputs e salva no celular. Eu to desenvolvendo usando HTML, Javascript, CSS, Apache Cordova e Node, basicamente isso. Eu fiz a primeira parte do formulário e funcionou no meu PC, mas quando coloco no meu celular, e preencho os inputs e clico no botão, todos os inputs apagam(como deve ser), mas aparentemente o arquivo texto não é criado. Eu tenho quase certeza que o problema está na função, mas eu não sei exatamente qual é, e nem o que colocar no lugar, preciso ajuda! Este é o meu HTML: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> Local </title> <link rel="stylesheet" type="text/css" href="css/index.css"></link> <script language="javascript" type="text/javascript" src="js/index.js"></script> </head> <body> <div class="pag"> <form name="flocal"> <p> <h2>Local</h2> </p> <p id="plocal"> CEP <br><input type="text" name="cep" id="icep" onkeypress='return RestringeNum(event)' maxlength="8" autofocus><br><br> Rua <br><input type="text" name="rua" id="irua" onkeypress='return RestringeLet(event)'><br><br> Número <br><input type="text" name="numero" id="inum" onkeypress='return RestringeNum(event)' maxlength="4"><br><br> Bairro <br><input type="text" name="bairro" id="ibai" onkeypress='return RestringeLet(event)'><br><br> Complemento <br><input type="text" name="complemento" id="icom"><br><br> São Vicente-SP<br><br> <button onclick="SalvarDados()">Salvar dados</button> </p> </form> </div> </body> </html> e esta é a função que cria um arquivo .txt e salva os valores do input nele: function SalvarDados() { var dados = document.getElementById("icep").value + " - " + document.getElementById("irua").value + " - " + document.getElementById("inum").value + " - " + document.getElementById("ibai").value + " - " + document.getElementById("icom").value; var textFileAsBlob = new Blob([dados], {type:'text/plain'}); var nome_arquivo = "formLocal"; var downloadLink = document.createElement("a"); downloadLink.download = nome_arquivo; downloadLink.innerHTML = "Download File"; if (window.webkitURL != null) { downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob); } else { downloadLink.href = window.URL.createObjectURL(textFileAsBlob); downloadLink.onclick = destroyClickedElement; downloadLink.style.display = "none"; document.body.appendChild(downloadLink); } downloadLink.click(); }
  24. Este é o meu HTML: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> Local </title> <link rel="stylesheet" type="text/css" href="css/index.css"></link> <script language="javascript" type="text/javascript" src="js/index.js"></script> </head> <body> <div class="pag"> <form name="flocal"> <p> <h2>Local</h2> </p> <p id="plocal"> CEP <br><input type="text" name="cep" id="icep" onkeypress='return RestringeNum(event)' maxlength="8" autofocus><br><br> Rua <br><input type="text" name="rua" id="irua" onkeypress='return RestringeLet(event)'><br><br> Número <br><input type="text" name="numero" id="inum" onkeypress='return RestringeNum(event)' maxlength="4"><br><br> Bairro <br><input type="text" name="bairro" id="ibai" onkeypress='return RestringeLet(event)'><br><br> Complemento <br><input type="text" name="complemento" id="icom"><br><br> São Vicente-SP<br><br> <button onclick="SalvarDados()">Salvar dados</button> </p> </form> </div> </body> </html> e este é o meu js: function RestringeNum(e) { var tecla = (window.event)?event.keyCode:e.which; if((tecla>47 && tecla<58)) return true; else { if (tecla==8 || tecla==0) return true; else return false; } } function RestringeLet(e) { var tecla = (window.event)?event.keyCode:e.which; if ((tecla > 64 && tecla < 91) || (tecla > 96 && tecla < 123) || (tecla == 32) || (tecla == 186)) return true; else return false; } function SalvarDados() { var dados = document.getElementById("icep").value + " - " + document.getElementById("irua").value + " - " + document.getElementById("inum").value + " - " + document.getElementById("ibai").value + " - " + document.getElementById("icom").value; var textFileAsBlob = new Blob([dados], {type:'text/plain'}); var nome_arquivo = "formLocal"; var downloadLink = document.createElement("a"); downloadLink.download = nome_arquivo; downloadLink.innerHTML = "Download File"; if (window.webkitURL != null) { downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob); } else { downloadLink.href = window.URL.createObjectURL(textFileAsBlob); downloadLink.onclick = destroyClickedElement; downloadLink.style.display = "none"; document.body.appendChild(downloadLink); } downloadLink.click(); } Funciona normalmente no meu pc, mas quando passo para o meu celular(usando o cordova), e clico no botão, que supostamente deveria criar um arquivo texto com o que eu digitei nos inputs, todos os inputs são "limpados", mas aparentemente não acontece nada.
  25. Boa tarde! Eu estou com problema para encontrar um script em PHP ou JAVASCRIPT que redirecione um dispositivo mobile que usa o navegador em modo clássico do Android 4.4.2. Achei dois sites fantásticos com script de redirecionamento mobile (um com várias linguagens de programação e um em PHP), mas o problema é que eles são baseados no "userAgent" e não detectam dispositivos mobile que usam o modo clássico do navegador do Android. Segue links: Site 01: https://github.com/serbanghita/mobile-detect Site 02: http://detectmobilebrowsers.com/ Se alguém puder me ajudar com um script de redirecionamento em PHP ou JAVASCRIPT para dispositivos Androids antigos, eu ficarei muito agradecido. Obrigado! M.S.S
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.