Technician Android App
Use the ISPbills Technician app for assigned jobs, customer field work, inventory lookup, navigation, and optional realtime location sharing.
Technician Android App
The ISPbills Technician app is an Android field-work client. A signed-in technician can review assigned support jobs, work with customer records, look up inventory, open job or customer coordinates in a maps app, and optionally share a live location with dispatch.
The app needs a working connection to the ISPbills server for live data and changes. Demo mode uses sample data and does not change production records.
Sign in
On the sign-in screen, enter the technician username and password, then select Login. Login with Google and Login with Facebook open the provider in a browser and return to the app when social sign-in succeeds. The operator must have enabled and correctly configured the selected provider.
Use Use demo account only to explore the interface with sample jobs, customers, and inventory. Demo changes remain in the demo session.
The app stores the authentication token and technician ID on the device so it can reopen at the dashboard. Select the sign-out icon on the dashboard to remove them. Signing out does not automatically erase Android backups or files that you selected for upload.
Dashboard and assigned jobs
The dashboard shows pending jobs, jobs in progress, jobs completed today, and the current month's total. Its shortcuts open Jobs, Customers, Inventory, Scan Barcode, Maps, and My Location.
To complete a field job:
- Open Jobs and select All, Pending, Active, or Done.
- Open the assigned job and confirm the customer, phone, address, schedule, priority, description, and existing notes.
- Enter Task performed / next action and Self assessment / field note, then select Save Task Note when you only need to save notes.
- Select Start to change a pending job to
in_progress. - After the work is finished, record the task and assessment, then select Complete. Use Cancel only when the job must be cancelled.
The detail screen currently finds a job in a refreshed list of up to 200 jobs; there is no separate single-job request. A job outside that result can show Job not found. Completed and cancelled jobs have no further status buttons.
Customers and collections
Open Customers to search by name, username, phone, or status. A customer card shows the account status, username, phone, and package. Open it to review online state, expiry, balance, contact and address data.
From the customer page you can:
- open external directions when latitude and longitude exist;
- update contact, NID, company, address, MAC, password, and coordinate fields;
- choose a customer photo and NID photo from Android's file/image picker, then save the record;
- send an SMS through the ISPbills server;
- record a collection using a category such as
inventory,connection_fee,bill,recharge,advance,otg, orothers, with optional item, quantity, unit price, and note.
Use Add Customer to create a record. Name, username, password, and mobile are required by the app form. Optional fields include email, company, NID, address parts, coordinates, MAC binding, customer/NID images, connection type, and billing type. Check all sensitive identity and payment data before saving; live saves are sent to the operator's ISPbills server.
Inventory and barcode lookup
Inventory lists the item name, quantity, SKU, category, location, description, and unit price returned by the server. Search matches item name, SKU, barcode, category, or location.
Select the scanner icon or Scan Barcode, grant camera access, and point the rear camera at a barcode or QR code. The code is sent to the inventory lookup endpoint; the app displays the matching item or a not-found message. Select Scan Again for another label.
Add Inventory does not call a server create endpoint. Items added there exist only in the running app process and can disappear when the process or app restarts. Use it as a temporary field list, not as the authoritative inventory record.
Maps and realtime location
Maps lists assigned jobs that have coordinates. Select the directions button to open Google Maps navigation when available, or another installed app that handles geographic links. The app does not render an internal map or calculate a route. Jobs without coordinates are omitted.
My Location controls dispatch sharing:
- Open My Location and turn on the switch.
- Grant precise or approximate location access when Android asks.
- Keep the ongoing location notification/service running during the visit.
- Turn the switch off when sharing is no longer required.
While enabled and permitted, the foreground service requests high-accuracy updates about every 30 seconds (with a 15-second minimum update interval) and sends latitude, longitude, accuracy, and a device timestamp to ISPbills. Delivery is best-effort: a failed upload is ignored and retried only when a later location arrives. The app does not display upload history or the last successful server receipt.
Permissions and privacy
| Access | Why it is used | What happens if denied |
|---|---|---|
| Internet and network state | Authentication and all live dashboard, job, customer, inventory, SMS, collection, and location requests | Live data and saves fail; demo data remains available. |
| Camera | Local barcode and QR recognition | Barcode scanning is unavailable; the rest of the app remains usable. |
| Fine/coarse location | Optional realtime dispatch updates | Location sharing cannot start. Job and customer directions still use their stored coordinates. |
| Foreground service and notification | Keeps optional location tracking visible while it runs | Android may stop or hide tracking, depending on OS notification rules. |
| Biometrics/fingerprint | Declared for biometric support | The current sign-in screen does not offer biometric login. |
Customer photos, NID images, identity fields, messages, collection details, job notes, and location can contain personal or operationally sensitive data. Collect only what the operator is authorized to process, verify the recipient before sending SMS, and turn off location sharing after field work. The image picker gives the app access only to the item you select; the app does not need broad media-library access for this workflow.
Current limitations
- There is no offline queue or conflict resolution. Most screens show an error when the server is unreachable.
- Lists request up to 50 jobs, customers, or inventory items by default and have no load-more control in the current interface.
- The dashboard, jobs, customers, inventory, barcode lookup, and map use sample data in demo mode; changes do not reach production.
- The app has no visible settings page for changing dark mode or enabling biometric login.
- Location sharing may remain enabled in stored preferences, but actual uploads require permission and a running foreground service.
Troubleshooting
| Symptom | Resolution |
|---|---|
| Invalid credentials | Confirm that the account is a valid technician account and re-enter the username and password. For social sign-in, confirm the provider is configured and that the browser returns to ispbills-technician://auth/callback. |
| A screen reports a network error | Check mobile data/Wi-Fi and the ISPbills server. Return to the screen after connectivity is restored; there is no offline retry queue. |
| A job is missing or shows Job not found | Clear the job filter and confirm dispatch assigned it to this technician. The detail lookup only searches the fetched job set. |
| Scanner is blank or asks for permission | Grant camera permission in Android settings, close other apps using the camera, and reopen Scan Barcode. |
| Barcode is read but no item appears | Confirm the inventory record has exactly that barcode and that the logged-in technician can access it. |
| Directions do nothing | Install or enable an app that handles Google navigation or geo: links, and confirm the job/customer has valid coordinates. |
| Dispatch receives no location | Turn on My Location, grant location permission, keep the ongoing tracking notification active, and verify network access. Toggle sharing off and on to restart the service. |
| A manually added inventory item disappeared | This is expected after an app-process restart; create or update the authoritative item in ISPbills instead. |