Borde räcka för läsa API hämta sedan importera det sedan sköter man vidarekoppling till aktuell jour, dock måste appen fungera som en vanlig SMS app, backrunds läsning bara bruka inte godkännas av Google för få behörigheter för SMS längre.
Kod:
package com.example.readsms;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Telephony;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<String> smsList = new ArrayList<>();
private ListView listView;
private static final int READ_SMS_PERMISSION_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, smsList);
listView.setAdapter(adapter);
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_SMS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{android.Manifest.permission.READ_SMS}, READ_SMS_PERMISSION_CODE);
} else {
readSms();
}
}
private void readSms() {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(
Telephony.Sms.CONTENT_URI,
null,
null,
null,
null);
if (cursor != null && cursor.moveToFirst()) {
do {
String address = cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Sms.ADDRESS));
String body = cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Sms.BODY));
smsList.add("Sender: " + address + "\nMessage: " + body);
} while (cursor.moveToNext());
}
if (cursor != null) {
cursor.close();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == READ_SMS_PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
readSms();
ArrayAdapter<String> adapter = (ArrayAdapter<String>) listView.getAdapter();
adapter.notifyDataSetChanged();
}
}
}
}
En annan lösning är överlåta jobbet till ert mobila MDM system förutsatt att ni inte kör maas360 som knappt ha några funktioner. Duostation är rätt kraftfullt finns så klart många andra också frågan är bara vad ni ställer för krav på MDMet i upphandlingarna.