I want receive sms activation code and only code(no text) autofill in the specified input after receiving the SMS, I receiving SMS, but I don't know the rest.
How do i do?
html:
AndroidManifest.xml:
MainActivity.java:
ReceiveSms.java:
i want just separate the code from the text of the message and place it in the field after receiving the sms?
How do i do?
html:
HTML:
<form action="/auth/login" id="getactivcode" method="post" accept-charset="utf-8" autocomplete="off">
<input type="text" name="code" class="numeren" autocomplete="off" id="libino" maxlength="4">
</form>
AndroidManifest.xml:
XML:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.site.gilali">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name=".ApplicationClass"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:theme="@style/Theme.gilali">
<activity
android:exported="true"
android:name="com.site.gilali.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:exported="true" android:name=".ReceiveSms">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>
MainActivity.java:
Java:
package com.site.gilali;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.graphics.Bitmap;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
// ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = findViewById(R.id.web_view);
// progressBar = findViewById(R.id.progressBar);
String siteUrl = "https://gilali.com/";
mWebView.loadUrl(siteUrl);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new mWebViewClient());
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.RECEIVE_SMS)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.RECEIVE_SMS}, 1000);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if(requestCode == 1000){
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(this, "Permission not granted", Toast.LENGTH_SHORT).show();
finish();
}
}
}
private class mWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
// progressBar.setVisibility(View.VISIBLE);
// Toast.makeText(MainActivity.this, "Loading page...", Toast.LENGTH_SHORT).show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// progressBar.setVisibility(View.GONE);
// Toast.makeText(MainActivity.this, "Loading finished", Toast.LENGTH_SHORT).show();
}
}
public void onBackPressed(){
if(mWebView.canGoBack()){
mWebView.goBack();
}else{
super.onBackPressed();
}
}
}
ReceiveSms.java:
Java:
package com.site.gilali;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class ReceiveSms extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Bundle bundle = intent.getExtras();
SmsMessage[] msgs;
String msg_from;
if(bundle != null){
try{
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = 0; i < msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
msg_from = msgs[i].getOriginatingAddress();
String msgBody = msgs[i].getMessageBody();
Toast.makeText(context, "From: "+msg_from+", Body: "+msgBody, Toast.LENGTH_SHORT).show();
//msgBody -> active code:5241
}
} catch (Exception e){
e.printStackTrace();
}
}
}
}
}
i want just separate the code from the text of the message and place it in the field after receiving the sms?