Pesquisar na Comunidade

A mostrar resultados para tags ''android''.

  • Pesquisa por Tags

    Introduza as tags separadas por vírgulas.
  • Pesquisar por Autor

Tipo de Conteúdo


Fórum

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
    • Apresentações
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • SharePoint
    • Apresentação de Software
  • Informática Extra-Programação
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Matemática
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
    • Arquivo Morto

Blogs

  • Projectos
  • Revista PROGRAMAR
  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Wiki

Categorias

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros



Filtrar por número de...

121 resultados

  1. Bom dia, Estou a ter alguns problemas em implementar uma pequena app para obter a meteorologia vinda das respostas do OpenWeatherMap, no entanto estou com problemas em implementar. Main Activity: public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { private static final String APP_ID = "api_id"; private static final int PERMISSION_ACCESS_COARSE_LOCATION = 1; private GoogleApiClient googleApiClient; private TextView textView; private TextView textView_humidity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.textView); if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.ACCESS_COARSE_LOCATION }, PERMISSION_ACCESS_COARSE_LOCATION); } googleApiClient = new GoogleApiClient.Builder(this, this, this).addApi(LocationServices.API).build(); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case PERMISSION_ACCESS_COARSE_LOCATION: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // All good! } else { Toast.makeText(this, "Need your location!", Toast.LENGTH_SHORT).show(); } break; } } @Override protected void onStart() { super.onStart(); if (googleApiClient != null) { googleApiClient.connect(); } } @Override protected void onStop() { googleApiClient.disconnect(); super.onStop(); } @Override public void onConnected(Bundle bundle) { Log.i(MainActivity.class.getSimpleName(), "Connected to Google Play Services!"); if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient); double lat = lastLocation.getLatitude(); double lon = lastLocation.getLongitude(); String units = "metric"; String url = String.format("http://api.openweathermap.org/data/2.5/weather?lat=%f&lon=%f&units=%s&appid=%s", lat, lon, units, APP_ID); new GetWeatherTask(textView).execute(url); } } @Override public void onConnectionSuspended(int i) { } @Override public void onConnectionFailed(ConnectionResult connectionResult) { Log.i(MainActivity.class.getSimpleName(), "Can't connect to Google Play Services!"); } private class GetWeatherTask extends AsyncTask<Meteo, Void, Meteo> { private TextView textView; private TextView textView_humidity; public GetWeatherTask(TextView textView) { this.textView = textView; } @Override protected Meteo doInBackground(Meteo... params) { Meteo meteo = new Meteo(); String weather = "UNDEFINED"; try { URL url = new URL(params[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); InputStream stream = new BufferedInputStream(urlConnection.getInputStream()); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream)); StringBuilder builder = new StringBuilder(); String inputString; while ((inputString = bufferedReader.readLine()) != null) { builder.append(inputString); } JSONObject topLevel = new JSONObject(builder.toString()); JSONObject main = topLevel.getJSONObject("main"); meteo.temperatura = String.valueOf(main.getDouble("temp")); meteo.humidade = String.valueOf(main.getDouble("humidity")); urlConnection.disconnect(); } catch (IOException | JSONException e) { e.printStackTrace(); } return meteo; } @Override protected void onPostExecute(Meteo meteo) { textView.setText("Current Weather: " + meteo.temperatura + " ºC"); textView.setText("Current Humidity: " + meteo.humidade + " ºC"); } } } Meteo Class: * Created by Nuno on 27/11/2016. */ public class Meteo { public String temperatura; public String humidade; public String vento; public Meteo() { temperatura = ""; humidade = ""; vento = ""; } public Meteo(String tEmperatura, String hUmidade, String vEnto) { temperatura = tEmperatura; humidade = hUmidade; vento = vEnto; } public String getTemperatura(){ return temperatura; } public String getHumidade (){ return humidade; } public String getVento() { return vento; } } Basicamente o meu problema está no URL. Ou seja, aqui: Eu ainda não estou muito familiarizado com estes elementos quer URL, quer asynctasks será que me poderiam ajudar a resolver este problema? Cumprimentos
  2. Boas noite, Estou a tentar fazer uma pequena app que consiste pesquisar numa base de dados SQLite. Para a pesquisa irei usar duas formas, ou seja através do Numero ONU e através do Nome. No entanto estou a deparar-me com um problema, a app estoura no caso de se tentar pesquisar sobre algum registo que não exista. Como poderei fazer para que seja despoletada uma mensagem de erro no caso da pesquisa não encontrar um resultado? DbHelper: //Metodo ONU Query public List<Elemento> getONU() { List<Elemento> listaElementos = new ArrayList<Elemento>(); //Seleccionar Query String selectQuery = "SELECT *FROM " + TABLE_NAME + " WHERE ONU = " + MainActivity.editText_ONU_search.getText(); dbase = this.getReadableDatabase(); Cursor cursor = dbase.rawQuery(selectQuery, null); //Loop por todas as linhas da BD e adiciona-las a lista if(cursor.moveToFirst()) { Elemento element = new Elemento(); element.setID(cursor.getInt(0)); element.setONU(cursor.getInt(1)); element.setNOME_SUB(cursor.getString(2)); listaElementos.add(element); } //Return listaElementos; return listaElementos; } //Metodo Nome Query public List<Elemento> getNomeSubstancia() { List<Elemento> listaElementos = new ArrayList<Elemento>(); //Seleccionar Query String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE NOME_SUB = '" + MainActivity.editText_NOME_search.getText() + "'"; dbase = this.getReadableDatabase(); Cursor cursor = dbase.rawQuery(selectQuery, null); //Loop por todas as linhas da BD e adiciona-las a lista if(cursor.moveToFirst()) { Elemento element = new Elemento(); element.setID(cursor.getInt(0)); element.setONU(cursor.getInt(1)); element.setNOME_SUB(cursor.getString(2)); listaElementos.add(element); } //Return listaElementos; return listaElementos; } OnuResultActivity: package com.example.nuno.materiasperigosasexample; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; import com.example.nuno.materiasperigosasexample.Database.DbHelper; import com.example.nuno.materiasperigosasexample.Database.Elemento; import java.util.List; public class OnuResultActivity extends AppCompatActivity { //Declaração de variaveis List<Elemento> listaElementos; int elemento_id = 0; Elemento currentElemento; TextView textView_onu, textView_nome_sub; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_onu_result); DbHelper db = new DbHelper(this); listaElementos = db.getONU(); currentElemento = listaElementos.get(elemento_id); textView_onu = (TextView)findViewById(R.id.textView_onu); textView_nome_sub = (TextView) findViewById(R.id.textView_nome_sub); //Apresentar Info setElementosView(); } private void setElementosView() { textView_onu.setText(Integer.toString(currentElemento.getONU())); textView_nome_sub.setText(String.valueOf(currentElemento.getNOME_SUB())); elemento_id++; } } NomeResultActivity: package com.example.nuno.materiasperigosasexample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; import com.example.nuno.materiasperigosasexample.Database.DbHelper; import com.example.nuno.materiasperigosasexample.Database.Elemento; import java.util.List; public class NomeResultActivity extends AppCompatActivity { //Declaração de variaveis List<Elemento> listaElementos; int elemento_id = 0; Elemento currentElemento; TextView textView_onu, textView_nome_sub; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_nome_result); DbHelper db = new DbHelper(this); listaElementos = db.getNomeSubstancia(); currentElemento = listaElementos.get(elemento_id); textView_onu = (TextView)findViewById(R.id.textView_onu); textView_nome_sub = (TextView) findViewById(R.id.textView_nome_sub); //Apresentar Info setElementosView(); } private void setElementosView() { textView_onu.setText(Integer.toString(currentElemento.getONU())); textView_nome_sub.setText(String.valueOf(currentElemento.getNOME_SUB())); elemento_id++; } } Alguma ideia de como poderei retornar uma mensagem de aviso quando a pesquisa não é encontrada de forma a cobrir a possibilidade de a pesquisa inserida pelo utilizador ser não corresponder ao que está na BD. Cumprimentos Psycop
  3. Pessoal estou fazendo um trabalho com o ionic + laravel para Android e estou tendo problemas com os componentes que tem na documentação do ionic como por exemplo o componente de select, ao colocar em um ion-list um ion-item com o conteúdo: <ion-item> <ion-label>Toppings</ion-label> <ion-select [(ngModel)]="toppings" multiple="true"> <ion-option>Bacon</ion-option> <ion-option>Black Olives</ion-option> <ion-option>Extra Cheese</ion-option> <ion-option>Mushrooms</ion-option> <ion-option>Pepperoni</ion-option> <ion-option>Sausage</ion-option> </ion-select> </ion-item> Ele não mostra o resultado como no simulador da documentação do ionic, parece que falta carregar algum css ou js, pois não carrega o select, se eu colocar o conteúdo assim: <label class = "item item-input item-select"> <div class = "input-label"> Select </div> <select> <option>Option 1</option> <option selected>Option 2</option> <option>Option 3</option> </select> </label> Mostra um resultado como uma view web e não é o que quero. Minha index.html está assim: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title></title> <link rel="manifest" href="manifest.json"> <!-- un-comment this code to enable service worker <script> if ('serviceWorker' in navigator) { navigator.serviceWorker.register('service-worker.js') .then(() => console.log('service worker installed')) .catch(err => console.log('Error', err)); } </script>--> <link href="lib/ionic/css/ionic.css" rel="stylesheet"> <link href="lib/ionic/css/ionic.min.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above <link href="css/ionic.app.css" rel="stylesheet"> --> <!-- ionic/angularjs js --> <script src="lib/ionic/js/ionic.bundle.js"></script> <!-- cordova script (this will be a 404 during development) --> <script src="cordova.js"></script> <!-- your app's js --> <script src="js/app.js"></script> <script src="js/controllers.js"></script> </head> <body ng-app="starter"> <ion-nav-view></ion-nav-view> </body> </html>
  4. Boa tarde, Estou a tentar colocar a funcionar um projecto open-source encontrado na internet mas estou com alguns problemas ao tentar implementar as permissões para o Location agora exigidas pelo compileSdkVersion 23 e buildToolsVersion "23.0.1" que quero utilizar. O código em que estou a usar pode ser encontrado aqui: https://github.com/vyshane/rex-weather /** * Implement an Rx-style location service by wrapping the Android LocationManager and providing * the location result as an Observable. */ public class LocationService { private final LocationManager mLocationManager; public LocationService(LocationManager locationManager) { mLocationManager = locationManager; } public Observable<Location> getLocation() { return Observable.create(new Observable.OnSubscribe<Location>() { @Override public void call(final Subscriber<? super Location> subscriber) { final LocationListener locationListener = new LocationListener() { public void onLocationChanged(final Location location) { subscriber.onNext(location); subscriber.onCompleted(); Looper.myLooper().quit(); } public void onStatusChanged(String provider, int status, Bundle extras) { } public void onProviderEnabled(String provider) { } public void onProviderDisabled(String provider) { } }; final Criteria locationCriteria = new Criteria(); locationCriteria.setAccuracy(Criteria.ACCURACY_COARSE); locationCriteria.setPowerRequirement(Criteria.POWER_LOW); final String locationProvider = mLocationManager .getBestProvider(locationCriteria, true); Looper.prepare(); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } mLocationManager.requestSingleUpdate(locationProvider, locationListener, Looper.myLooper()); Looper.loop(); } }); } } O meu problema está no 'this' da permissão, o qual tem como erro o seguinte: Eu não sei como colocar isto a funcionar, se alguém me puder dar uma ajuda agradecia. Cumps
  5. Google DevFest Coimbra - 3 de Dezembro

    O DevFest Coimbra’16 é uma conferência tecnológica que se realiza no dia 3 de Dezembro, em Coimbra. Organizada pelo Google Developers Group (GDG) Coimbra, integra-se no ciclo de conferências GDG DevFest promovidas globalmente pela Google. Tem como objetivo, trazer o que melhor se faz de tecnologia ao centro de Portugal. Esta conferência é dedicada às áreas de mobile, web, design e segurança. Combina palestras, apresentadas por oradores de renome do sector tecnológico, com workshops tecnológicos, de forma a permitir o contacto direto dos participantes com a tecnologia mais recente e inovadora. O evento tem um custo associado de 5€, que revertem totalmente para a Liga Portuguesa Contra o Cancro e podem ser adquiridos: http://www2.last2ticket.com/pt/events/101/devfest-coimbra-2016. GDG Coimbra O GDG Coimbra é uma comunidade amadora de pessoas interessadas por tecnologia que se juntam para discutir ideias, desenvolver projetos, partilhar ideias (ou simplesmente beber uma cerveja, acompanhada por um nougat, o nosso “doce” atual de preferência). Entre os vários eventos organizados este ano pelo GDG Coimbra, constam: Study Jam (workshops), Developer Stories (palestras), I/O extended e Gather Hour. Redes Sociais #DevFestCbr #DevFest16 #GDGCoimbra Mais Info Site: http://devfest.gdgcoimbra.xyz Tickets: http://www2.last2ticket.com/pt/events/101/devfest-coimbra-2016 Facebook: fb.me/GDGCoimbra Google+: https://plus.google.com/+GDGCoimbra Twitter: @GDGCoimbra Email: gdgcoimbra@gmail.com
  6. Boas Estou a fazer uma série de pequenas libs para controlar alguns dispositivos Usb em Android. No entanto estou a ter alguns problemas com o comportamento dos dispositivos, com alguma instabilidade no mesmo. O mais provável é faltar-me controlar alguma coisa a nível do Usb. Alguém conhece bons tutoriais sobre como controlar dispositivos Usb, não obrigatoriamente, mas de preferência para Android?
  7. Bom Dia, Estou a tentar fazer uma pequena aplicação que consuma a API OpenWeatherMap mas que use a localização do dispositivo para tal, as coordenadas. Já consegui obter as coordenadas do dispositivo no entanto quando injecto essas mesmas coordenadas no URL para fazer a chamada ao serviço este não devolve informações, como se não tivessem sido introduzidas quaisquer coordenadas nos seus parametros. Será que me podem ajudar? Em baixo está o código que criei até agora: public class MainActivity extends AppCompatActivity { private LocationManager locationManager; private LocationListener listener; static float lat; static float lon; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction().add(R.id.container, new WeatherFragment()).commit(); } locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); listener = new LocationListener() { @Override public void onLocationChanged(Location location) { lat = (float)location.getLatitude(); lon = (float)location.getLongitude(); //t.setText("\n " + lat + "\n" + lon); } @Override public void onStatusChanged(String s, int i, Bundle bundle) { } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(i); } }; configure_button(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.weather, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == R.id.change_city){ showInputDialog(); } return false; } private void showInputDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Escolher a Cidade:"); final EditText input = new EditText(this); input.setInputType(InputType.TYPE_CLASS_TEXT); builder.setView(input); builder.setPositiveButton("Go", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { changeCity(input.getText().toString()); } }); builder.show(); } public void changeCity(String city){ WeatherFragment wf = (WeatherFragment)getSupportFragmentManager() .findFragmentById(R.id.container); wf.changeCity(city); new CityPreference(this).setCity(city); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 10: configure_button(); break; default: break; } } void configure_button(){ // first check for permissions if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.INTERNET} ,10); } return; } // this code won't execute IF permissions are not allowed, because in the line above there is return statement. //noinspection MissingPermission locationManager.requestLocationUpdates("gps", 5000, 0, listener); } } RemoteFetch.java public class RemoteFetch extends MainActivity{ //private static final String OPEN_WEATHER_MAP_API = "http://api.openweathermap.org/data/2.5/weather?q=%s&units=metric"; //private static final String OPEN_WEATHER_MAP_API = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&units=metric"; private static final String OPEN_WEATHER_MAP_API = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&units=metric"; public static JSONObject getJSON(Context context, String city){ try { URL url = new URL(String.format(OPEN_WEATHER_MAP_API, city)); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.addRequestProperty("x-api-key", context.getString(R.string.open_weather_maps_app_id)); BufferedReader reader = new BufferedReader( new InputStreamReader(connection.getInputStream())); StringBuffer json = new StringBuffer(1024); String tmp=""; while((tmp=reader.readLine())!=null) json.append(tmp).append("\n"); reader.close(); JSONObject data = new JSONObject(json.toString()); if(data.getInt("cod") != 200){ return null; } return data; }catch(Exception e){ return null; } } } WeatherFragment.java public class WeatherFragment extends Fragment { Typeface weatherFont; TextView cityField; TextView updatedField; TextView detailsField; TextView currentTemperatureField; TextView weatherIcon; TextView windField; Handler handler; public WeatherFragment(){ handler = new Handler(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_weather, container, false); cityField = (TextView)rootView.findViewById(R.id.city_field); updatedField = (TextView)rootView.findViewById(R.id.updated_field); detailsField = (TextView)rootView.findViewById(R.id.details_field); currentTemperatureField = (TextView)rootView.findViewById(R.id.current_temperature_field); weatherIcon = (TextView)rootView.findViewById(R.id.weather_icon); windField = (TextView)rootView.findViewById(R.id.wind_detail); weatherIcon.setTypeface(weatherFont); return rootView; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); weatherFont = Typeface.createFromAsset(getActivity().getAssets(), "weather.ttf"); updateWeatherData(new CityPreference(getActivity()).getCity()); } private void updateWeatherData(final String city){ new Thread(){ public void run(){ final JSONObject json = RemoteFetch.getJSON(getActivity(), city); if(json == null){ handler.post(new Runnable(){ public void run(){ Toast.makeText(getActivity(), getActivity().getString(R.string.place_not_found), Toast.LENGTH_LONG).show(); } }); } else { handler.post(new Runnable(){ public void run(){ renderWeather(json); } }); } } }.start(); } private void renderWeather(JSONObject json){ try { cityField.setText(json.getString("name").toUpperCase(Locale.US) + ", " + json.getJSONObject("sys").getString("country")); JSONObject details = json.getJSONArray("weather").getJSONObject(0); JSONObject main = json.getJSONObject("main"); detailsField.setText( details.getString("description").toUpperCase(Locale.US) + "\n" + "Humidity: " + main.getString("humidity") + "%" + "\n" + "Pressure: " + main.getString("pressure") + " hPa"); JSONObject wind = json.getJSONObject("wind"); //converter para km/h double wind_ms = Double.parseDouble(wind.getString("speed").toUpperCase(Locale.getDefault())); double wind_km = wind_ms * 3.6; //DecimalFormat decimal = new DecimalFormat("#.##"); //wind_km = Double.valueOf(decimal.format(wind_km)); windField.setText("Wind: " + wind_km + " Km/h "); currentTemperatureField.setText( String.format("%.2f", main.getDouble("temp"))+ " ℃"); DateFormat df = DateFormat.getDateTimeInstance(); String updatedOn = df.format(new Date(json.getLong("dt")*1000)); updatedField.setText("Last update: " + updatedOn); setWeatherIcon(details.getInt("id"), json.getJSONObject("sys").getLong("sunrise") * 1000, json.getJSONObject("sys").getLong("sunset") * 1000); }catch(Exception e){ Log.e("SimpleWeather", "One or more fields not found in the JSON data"); } } private void setWeatherIcon(int actualId, long sunrise, long sunset){ int id = actualId / 100; String icon = ""; if(actualId == 800){ long currentTime = new Date().getTime(); if(currentTime>=sunrise && currentTime<sunset) { icon = getActivity().getString(R.string.weather_sunny); } else { icon = getActivity().getString(R.string.weather_clear_night); } } else { switch(id) { case 2 : icon = getActivity().getString(R.string.weather_thunder); break; case 3 : icon = getActivity().getString(R.string.weather_drizzle); break; case 7 : icon = getActivity().getString(R.string.weather_foggy); break; case 8 : icon = getActivity().getString(R.string.weather_cloudy); break; case 6 : icon = getActivity().getString(R.string.weather_snowy); break; case 5 : icon = getActivity().getString(R.string.weather_rainy); break; } } weatherIcon.setText(icon); } public void changeCity(String city){ updateWeatherData(city); } } No entanto se injectar manualmente umas coordenadas válidas no URL obtenho a respetiva resposta do serviço, pelo que prevejo que o problema esteja na obtenção das coordenadas do dispositivo e a sua injecção on time no URL do serviço. Da a sensação que as coordenadas obtidas pelo location não estão a ser injetadas em tempo útil para o pedido do URL ao serviço. Alguém me consegue ajudar a resolver este problema? Cumprimentos
  8. Boas, Estou a desenvolver uma aplicação em Xamarin (Android) e estou com um problema relativamente ao tempo de vida da aplicação. Necessito que a aplicação que estou a desenvolver, corra no dispositivo durante vários dias (por exemplo 3, 4 ou mais). Para tal, já implementei serviços Android, que estão a fazer com que aplicação corra no dispositivo, sem parar e a executar as operações pretendidas. O problema está, no facto do utilizador executar outras aplicações no dispositivo, fazendo com que quando o mesmo, fica com pouca memória, vai matar aplicações, que estão a correr, de modo a iniciar as novas. Já tentei implementar a aplicação, como se de um GPS de trata-se (pois o Android considera estas, como de alta prioridade), mas sem sucesso! Acontecendo o mesmo, a quando da pouca memória do dispositivo. Uma opção que pensei, era na criação de um segunda aplicação que verificava se esta primeira estava a correr. E caso não, iniciava a mesma, mas não é uma opção muito prática. Gostaria de saber se alguém possui alguma outra sugestão, que possa ser útil na resolução deste problema? Ou se o que pretendo fazer, não é possível de obter, com apenas uma aplicação? Obrigado!
  9. Boas, Como posso "criar" uma app android para controlar um computador, por exemplo, através do smartphone abrir o chrome, word no computador, podem dar uma ajudinha como fazer isso...Estou a iniciar no mundo dos dispositivos móveis. Obrigado!
  10. Olá pessoal, um amigo meu comprou um telemóvel que vem com o windows phone, mas ele não curte nada e é o primeiro wp que tem, e ele preferia um android. Eu já tive a pesquisar pela net e ainda não encontrei nada. Mas sabem se é possível trocar o so do tele de windows phone para android? e se é possivel, como se faz? Obrigado
  11. GDG DevFest Lisbon '16 - 24/Set

    O GDG DevFest Lisbon'16 é um evento promovido pelo Google Developers Group Lisbon (GDGLx) em parceria com a HackerSchool, que se realizará no próximo dia 24 de Setembro, no IST – Instituto Superior Técnico. A GDGLx é uma comunidade de developers e entusiastas de tecnologias Google que tem vindo a realizar diversas conferências, eventos, workshops tech abertos a toda a comunidade, sejam developers ou apenas curiosos, recebendo entre dezenas a centenas de pessoas. Este evento, focado em Android, mas também aberto a outras áreas como Web, Cloud, Gaming, Design e soft-skills, enquadra-se no DevFest, que se encontra dentro de uma temporada de conferências nacionais e internacionais da Google. Pretendendo acolher 100 participantes, conta com oradores bem conhecidos do sector tecnológico, como Francisco Franco (criador do popular Franco Kernel), Ivan Kutil (AppSatori), Gonçalo Silva (Todoist), Carlos Mota (Wit), Fabio Carballo (Hole19), Sérgio Almeida (Growin) e Bruno Oliveira (Faber Ventures). Para além das talks irá contemplar também um Workshop em Firebase e um Firechat, um espaço aberto à discussão entre os participantes e os speakers. É de salientar que o valor dos bilhetes será devolvido depois do evento, aos participantes que comparecerem. Se te interessas por Android, Web, Cloud, Gaming, e Design, terás certamente várias sessões que te irão interessar. Para mais informações: Site/Tickets: gdglisbon.xyz Facebook: /gdglisbon Twitter: @GDGLisbon
  12. Boa noite, Estou a desenvolver um projecto de um carro em Arduino e queria comunicar com o carro por Bluetooth. Deste modo quero fazer uma aplicação em Android para controlar o carro. Segui as instruções do site Android Developers https://developer.android.com/guide/topics/connectivity/bluetooth.html Tudo correu bem até ao momentos em que é preciso criar a Lista de dispositivos. Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); Quando faço print de pairedDevices dá-me sempre um output "0" e quando vou às definições do telemóvel consigo detectar aparelhos com o bluetooth ativo. Assim, leva-me a concluir que o problema é do código. Alguém já fez alguma aplicação que teve que usar Bluetooth? Melhores cumprimentos
  13. Boa noite, Venho pedir-vos a vossa ajuda com um problema que me deparei. Isto é para colocar um donut com o EasyPieChart. A ideia é que a legenda fique sobreposta no gráfico. No Chrome e no Firefox no windows aparece tudo correto. No Chrome no Android não. No chrome no Android, a legenda aparece sempre abaixo do gráfico. Alguma ideia? Segue o código: <div style="position: relative; text-align: center; width: 188px; height: 188px;"> <div id="chart"> <canvas></canvas> </div> <div id="chart-legend"> <span>0</span>% </div> </div> O css... #chart { position: absolute; width: 188px; height: 188px; text-align: center; font-size: 12px; } #chart canvas { position: absolute; top: 0; left: 0; } #chart-legend { position: absolute; top: 80px; left: 70px; z-index: 1; }
  14. Boas, como consigo fazer um menu settings para definir valor das variáveis da conexão com BD SQL Server (IP, etc.)? Obrigado.
  15. <TextView android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/WELCOMESUMMONER" android:textAlignment="center" android:layout_alignParentBottom="true" /> isto é o meu textview <?xml version="1.0" encoding="utf-8"?> <string name="WELCOMESUMMONER"> WELCOME SUMMONER <br></br> </string> isto é onde tenho a string para funcionar String string = getString(R.string.hello); mas o q eu quero saber é : <string name="WELCOMESUMMONER"> WELCOME SUMMONER asdfghjklç <br></br> </string> aqui como faço para dar enter no texto e fazer tipo parágrafo. tipo passar para a linha de baixo tipo assim : ola tudo bem ?
  16. Eu estou a fazer uma app android através do Intel XDK, que utiliza HTML5 e Javascript. O meu problema é o seguinte, eu preciso de ir buscar o ID do Dispositivo que estou a utilizar e para isso utilizei o device.uuid, agora o que eu preciso é pegar nesse ID que ele me dá e enviá-lo para um endereço de internet(url) que está no iframe. O meu código é o seguinte: <!DOCTYPE html> <html> <head> <title>App</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8" > <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, minimal-ui"> <meta name="apple-mobile-web-app-capable" content="yes" /> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <link rel="stylesheet" type="text/css" href="lib/appframework/icons.css" /> <link rel="stylesheet" type="text/css" href="lib/appframework/af.ui.css" /> <script type="text/javascript" charset="utf-8" src="lib/jquery.min.js"></script> <script type="text/javascript" charset="utf-8" src="lib/fastclick.min.js"></script> <script type="text/javascript" charset="utf-8" src="lib/appframework/appframework.ui.min.js"></script> <script src='cordova.js'></script> <script> document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { console.log(device.cordova); } document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { var element = document.getElementById('deviceProperties'); element.innerHTML = '' + device.uuid + ''; } </script> </head> <body> <div class="view"> <div class="pages"> <div class="panel" id="item1"> <p id="deviceProperties"></p> <p></p> <iframe src="https://xxxx.com/yyy/" width ="100%" height="100%"></iframe> </div> </div> </div> </body> </html>
  17. Boas! Eu estou a fazer um jogo em android, e estou a seguir este tutorial .Mas estou com um problema, a imagem de fundo não se está adaptar bem ao dispositivo. ... //tamanho da imagem public static final int WIDTH = 594; public static final int HEIGHT = 274; .... @Override public void draw(Canvas canvas) { super.draw(canvas); if (canvas != null) { float scaleFactorX = getWidth() / WIDTH; float scaleFactorY = getHeight() / HEIGHT; int savedState = canvas.save(); canvas.scale(scaleFactorX, scaleFactorY);// a imagem fica muito grande background.draw(canvas); canvas.restoreToCount(savedState); } }
  18. err

    err
  19. Titulo do Projecto: Matraquilhos Última Versão: 1.0.0 Site Oficial: https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Licença: Freeware Membros Actuais do Projecto: Bruno Aleixo, Teresa Tavares Descrição do Projecto: Jogo de matraquilhos para android Este é o meu primeiro jogo para android, espero que gostem e joguem muito. Conto com a vossa ajuda para partilhar e divulgar pelos vossos amigos. Screenshots:
  20. Boa tarde, Eu estava a pensar aprender android, mas com a notícia de que de que a google ia mudar a linguagem de java para OpenJDK, gostava de saber até que ponto isso irá alterar o desenvolvimento do andriod, ao nível da programação em si. Ou seja, alguém que hoje saiba desenvolver andriod com base em java vai precisar de fazer um update a nível da programação se quiser continuar a desenvolver andriod? Obrigado pela atenção.
  21. Alguém daqui programa ou vai ter de fazer algum joguinho para um trabalho curricular, para o android? Tenho uma sobrinha de 4 anos e comprei de preposito uma wii para tentar brincar com ela alguns joguinhos, mas não consigo encontrar ou arranjar joguinhos mais basicos, mais divertidos e faceis de controlar com os comandos da wii ( principalmente com os comandos: Wiimote + Nunchuk Wii ou então com a Wii Fit) para ela poder jogar sozinha... tudo que encontro são jogos que até para um adulto é complicado jogar... ...mas no meio de algumas pesquisas, encontrei maneira de usar umas apps para android, para poder usar os comandos da wii ( ou pelo menos o "Wiimote") em jogos android no telemovel (a piada é poder jogar também na tv, mas com uma pen daquelas de fazer stream directamente para uma smart tv nao seria complicado tornar possivel ter também o jogo a correr logo na tv).. Alguém ja fez joguinhos simples para o android? Eu tenho umas ideias basicas que poderiam funcionar bem e que poderiam ser suficiente basicas para uma criança de 3 ou 4 anos poder jogar sem as complicaçoes e dificuldades que há nos jogos disponiveis... algo que misturasse alguma semelhança mecânica com os jogos Mario Kart, ou Just Daance, mas também incluisse jogos didáticos, jogando com as letras, numeros, cores e palavras associando a respectivas imagens.. Tenho algumas ideias mediante acçoes e necessidades que vejo que a minha sobrinha conseguiria realizar ou nao e o que a faz gostar ou nao do que vê aparecer/acontecer na televisão, e se alguem estiver disposto a ajudar-me a criar um joguinho para crianças entre os 3 e 4 anos de idade, ou que vá ter que fazer algum trabalho na faculdade e não sabe que trabalho escolher ou se precisar de ajuda quer a nivel de suporte de hardware, tester, ou discutir e compreender necessidades infantis, gostos, bem como entender como uma criança vê e reage a um jogo destes, pode-me contactar-me (o seguir o assunto meu fórum) pois ficaria muito agradecido!
  22. Boas, não sei se há tópicos que me possam esclarecer esta dúvida e como não vi nenhum tutorial explícito decidi criar este topic a fim de ficar esclarecido. Para um projeto de uma cadeira, estou a tentar criar um sistema de Login / Registo no Android Studio usando SQLite e a única coisa que consigo fazer é criar a base de dados. Segui alguns tutoriais encontrados no Google mas quando criado o código, embora não me dê erros nenhuns, o programa não corre no simulador. Tenho um MainActivity, onde estão os componentes do Login (Utilizador + Password) com o seguinte código: package pt.ulp.se.moviefeed; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { DatabaseHelper myDb; Button btn_pagerego,btn_regfim,btn_login; EditText reg_user, reg_pw1, reg_pw2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myDb = new DatabaseHelper(this); reg_user = (EditText)findViewById(R.id.reg_user); reg_pw1 = (EditText)findViewById(R.id.reg_pw1); reg_pw2 = (EditText)findViewById(R.id.reg_pw2); Button btn_regfim = (Button)findViewById(R.id.bt3); Registo_Final(); } public void Botao_Registar_Pagina(View v) { btn_pagerego = (Button)findViewById(R.id.bt1); btn_pagerego.setonclickListener(new View.onclickListener() { @Override public void onclick(View v) { Intent intent = new Intent(MainActivity.this,RegistoActivity.class); startActivity(intent); } }); } public void Registo_Final() { btn_regfim.setonclickListener( new View.onclickListener() { @Override public void onclick(View v) { boolean Sucesso = myDb.insertData(reg_user.getText().toString(), reg_pw1.getText().toString()); if (Sucesso = true) Toast.makeText(MainActivity.this, "Registo bem sucedido!",Toast.LENGTH_LONG).show(); else Toast.makeText(MainActivity.this, "Os dados não estão corretos!",Toast.LENGTH_LONG).show(); } } ); } } Tenho um RegistoActivity, onde estão os componentes (Utilizador + Password1 + Password2 ) Tenho um DatabaseHelper.java com o seguinte código: package pt.ulp.se.moviefeed; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by rfz on 01/02/2016. */ public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "Cliente_db"; public static final String TABLE_NAME = "Cliente_table"; public static final String COL_1 = "ID"; public static final String COL_2 = "Nome"; public static final String COL_3 = "Password"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, NOME TEXT, PASSWORD TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public boolean insertData(String nome, String password) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_2,nome); contentValues.put(COL_3,password); long resultado = db.insert(TABLE_NAME,null,contentValues); if (resultado == -1) return false; else return true; } } Visto que o compilador não encontrou nenhum erro, creio que sejam problemas de semântica no código, gostava de pôr isto a correr o mais depressa possível... Como alteração, decidi apagar o RegistoActivity e colocar os componentes do Registo e os do Login na MainActivity. Não funciona é lá muito bem... Ajudem-me, por favor!!! Obrigado, desde já! Rafael
  23. Olá pessoal estou a criar uma uma aplicação android que envolve um calendário. Este calendário foi criado a partir de outro disponível aqui. Mas existe um erro nele que não estou a conseguir resolver. Alguns meses nao aparecem completos outros aparecem com dias a mais. Como posso resolver este problema??? Fica aqui o projeto
  24. Boas, Estou a desenvolver uma aplicação android em que o principal objectivo é conseguir detectar texto em video e depois de detectado conseguir reconhecer os caracteres e devolver em texto o que se encontra na imagem. Para tal acho que a melhor solução passa por usar um OCR e opencv library. Já consegui executar no meu smarphone um ocr simples em que tiro uma foto a um texto e devolve em texto o que se encontra na imagem. Mas um dos problemas do OCR é que é um pouco sensível por exemplo à luminosidade e ao ruído da imagem, o que por vezes dá resultados incorretos. Posto isto, gostaria que me ajudassem com sugestões de como desenvolver um sistema do género ao anterior mas em video(real time) em vez de tirar foto. Também gostaria de saber se existe outro método do género do OCR mas mais eficaz. Obrigado pela ajuda.
  25. Boa Noite Estou a fazer um projeto que consiste em detectar pontos característicos de imagens em Android, utilizando o Eclipse, SDK e NDK. As técnicas que estou a utilizar são o SURF e ORB. Estou com um pouco de dificuldades em inicializar o projeto. O código que tenho está disponibilizado no Git, mas não estou a conseguir começar, neste link: ORB - http://code.opencv.org/projects/opencv/repository/revisions/master/entry/modules/java/android_test/src/org/opencv/test/features2d/ORBDescriptorExtractorTest.java SURF - http://code.opencv.org/projects/opencv/repository/revisions/master/entry/modules/java/android_test/src/org/opencv/test/features2d/SURFDescriptorExtractorTest.java Agradeço desde já a ajuda