QWEN AI-Coding

Qwen ИИ Кодинг

AI-powered Code Generation - Android Studio Java GPS трекер


      AI Prompt Example
      
      Разработаем запрос для ИИ chat.qwen.ai для генерирования Java кода GPS трекера - приложения, отправляющего координаты смартфона через SMS на указанный номер.
      
      Текст запроса:
      
      Сгенерируй максимально простой Java код приложения GeoPosition для Android 11 для SDK 33.
      Приложение должно определять координаты по GPS сразу после запуска.
      Нужно запросить и получить все необходимые для работы приложения разрешения, в том числе и разрешение на чтение и запись данных в хранилище
      Дополнительно запросить у пользователя разрешение на использование внешнего хранилища.
      Необходимо разместить на экране элементы TextView:
      - первый TextView для показа времени вычисления координат по GPS
      - второй TextView для показа координат
      - третий TextView для показа количества спутников, используемых для вычислений GPS координат
      
      Необходимо каждые 5 минут писать на экран в TextView и отправлять координаты и время с помощью SMS на номер телефона +7-910-xxx-xx-xx и записывать их в формате Json в текстовый файл Position.txt в папку Download смартфона.
      При запуске приложения необходимо:
      - проверить, есть ли файл Position.txt в папке Download смартфона. Если файл Position.txt при запуске приложения есть, его надо стереть и создать заново (пустым)
      - отправить SMS "Start GeoPosition"
      
      
Code Generation >>
      
      Ответ ИИ Qwen:
      
      1. AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools">
    <!-- Разрешения -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-perment android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />
    <application>
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="GeoPosition"
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
        tools:targetApi="33">
        
        <activity>
             android:name=".MainActivity"
             android:exported="true">
              <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
        </activity>
    </application>
    </manifest>
      
       2. MainActivity.java  package com.example.geoposition;
      
 import android.Manifest;
 import android.content.ContentValues;
 import android.content.pm.PackageManager;
 import android.location.GpsStatus;
 import android.location.Location;
 import android.location.LocationListener;
 import android.location.LocationManager;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.telephony.SmsManager;
 import android.widget.TextView;
 import android.widget.Toast;
      
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.core.app.ActivityCompat;
 import androidx.core.content.ContextCompat;
      
 import org.json.JSONObject;
      
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
      
 public class MainActivity extends AppCompatActivity {
      
  private static final int PERMISSIONS_REQUEST_CODE = 100;
  private static final String PHONE_NUMBER = "+79100000000"; // замените на реальный номер
      
  private TextView tvTime, tvCoords, tvSatellites;
  private LocationManager locationManager;
  private int satellitesUsed = 0;
      
  @Override
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
      
   tvTime = findViewById(R.id.tvTime);
   tvCoords = findViewById(R.id.tvCoords);
   tvSatellites = findViewById(R.id.tvSatellites);
      
   // Запрос разрешений
   requestPermissionsIfNeeded();
  }
      
  private void requestPermissionsIfNeeded() {
   String[] permissions;
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    permissions = new String[]{
     Manifest.permission.ACCESS_FINE_LOCATION,
     Manifest.permission.SEND_SMS
    };
   } else {
    permissions = new String[]{
     Manifest.permission.ACCESS_FINE_LOCATION,
     Manifest.permission.SEND_SMS,
     Manifest.permission.WRITE_EXTERNAL_STORAGE
    };
   }
      
   boolean needRequest = false;
   for (String perm : permissions) {
    if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) {
     needRequest = true;
     break;
    }
   }
      
   if (needRequest) {
    ActivityCompat.requestPermissions(this, permissions, PERMISSIONS_REQUEST_CODE);
   } else {
    startAppLogic();
   }
  }
      
  @Override
  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                @NonNull int[] grantResults) {
   super.onRequestPermissionsResult(requestCode, permissions, grantResults);
   if (requestCode == PERMISSIONS_REQUEST_CODE) {
    boolean allGranted = true;
    for (int result : grantResults) {
     if (result != PackageManager.PERMISSION_GRANTED) {
      allGranted = false;
      break;
     }
    }
    if (allGranted) {
     startAppLogic();
    } else {
     Toast.makeText(this, "Требуются все разрешения!", Toast.LENGTH_LONG).show();
     finish();
    }
   }
      
      И так далее. Полный листинг всех файлов сгенерированного проекта приведен ниже. Можно copy/paste в новый проект в Android Studio
      
      
Полный ЛИСТИНГ >> или AI Code >>
      
      Программирование с ИИ (AI-powered Code Generation) позволило разработать работающий проект примерно в 40 раз быстрее, чем ту версию, которую я писал вручную.
      Точно так же был создан проект видеорегистратора для смартфона и генератора псевдослучайных чисел большой размерности.
      
      
      
      
Code Generation >>  Java с ИИ >>
      

AI Code Generation
Разработка кода с ИИ
AI Code Generation. Земельный участок из бруса, цилиндрованных бревен, кирпича, блоков, желебетона

AI Code Generation