Implementierung der In-App-Telefonanruffunktion mit Java in Android.
Der Anrufdienst ist eine der Kernfunktionen von Android und wird in Android-Anwendungen sehr häufig verwendet. Mit dieser Funktion kann der Benutzer Anrufe aus der Android-Anwendung heraus tätigen. Es gibt zwei Möglichkeiten, jemanden über eine Android-Anwendung anzurufen. Eine Nummer, bei der die zu wählende Nummer vordefiniert ist und keine Benutzereingabe erfordert. Zum Beispiel das Stellen einer Anfrage oder Unterstützung bei der Kundenbetreuung. Der zweite Ansatz besteht darin, eine beliebige gültige Nummer Ihrer Wahl anzurufen. Bei diesem Ansatz soll der Benutzer eine Nummer eingeben, die gewählt werden soll. In Java können beide durch das eingebaute Paket selbst implementiert werden.
Wir müssen Berechtigungen erteilen, damit die Anwendung die integrierte Android-Anruffunktion verwenden kann. Dazu bitten wir den Benutzer zunächst um die CALL_PHONE-Berechtigung, indem wir den folgenden Berechtigungscode in die Datei AndroidManifest.xml einfügen .
<uses-permission android:name="android.permission.CALL_PHONE"/>
Darin haben wir zwei Schaltflächen hinzugefügt und beiden Schaltflächen eine ID zugewiesen. Eine zum Anrufen einer vordefinierten Nummer und die andere zum Anrufen über Benutzereingaben.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="24dp"
android:textStyle="bold"
android:text="@string/call_feature" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="16dp"
android:layout_marginTop="20dp"
android:text="@string/feature" />
<Button
android:id="@+id/btnCall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"
android:text="@string/contact_us"/>
<EditText
android:id="@+id/edtPhoneNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="16dp"
android:layout_marginTop="20dp"
android:hint="@string/dynamicCall"
android:text="" />
<Button
android:id="@+id/btnCallDynamic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"
android:text="@string/call"/>
</LinearLayout>
Wir werden einen Android-Intent zum Anrufen verwenden. Ein Android-Intent umfasst den Code, den Sie zum Ausführen einer Aktion benötigen, und beschreibt die Daten in einem Intent-Objekt, das Sie vom System benötigen. Mit einem Intent können Sie eine Aktivität in einer anderen App starten, indem Sie eine einfache Aktion beschreiben, die Sie in einem Intent-Objekt ausführen möchten.
Hier erstellen wir einen Intent und beschreiben die Aktion ACTION_CALL im Intent-Objekt.
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel: 9999999999"));
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PHONE_CALL);
startActivity(callIntent);
package com.example.androidphonecalls;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
// Initialized edittext and buttons
Button call, dynamicCall;
EditText phoneNumber;
private static final int REQUEST_PHONE_CALL = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting instance of button and edit text
call = findViewById(R.id.btnCall);
phoneNumber = findViewById(R.id.edtPhoneNumber);
dynamicCall = findViewById(R.id.btnCallDynamic);
// Here we are adding onClick listener on the button to call predefined number
call.setOnClickListener(view -> {
Intent callIntent = new Intent(Intent.ACTION_CALL);
// Here we have defined the number to be called
callIntent.setData(Uri.parse("tel: 9999999999"));
// Checking for the permission
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PHONE_CALL);
// Starting the call Intent
startActivity(callIntent);
});
// Here we are adding onClick listener on the button to call via user input
dynamicCall.setOnClickListener(view -> {
// Take value from user input
String retrieveNumber = phoneNumber.getText().toString();
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + retrieveNumber));
// Checking for permissions
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PHONE_CALL);
// Starting the call Intent
startActivity(callIntent);
});
}
}
Danke !
Einführung Apache Kafka ist eine verteilte Open-Source-Streaming-Plattform, die umfangreiches, fehlertolerantes Echtzeit-Datenstreaming mit hohem Durchsatz abwickelt. Das System basiert auf einem Publish-Subscribe-Modell, bei dem Produzenten Nachrichten zu Themen veröffentlichen und Verbraucher diese Themen abonnieren, um die Nachrichten zu konsumieren.
Die Entwicklung einer KI- und Neurowissenschafts-App ist in der heutigen Welt eine aufregende Gelegenheit. Mit der kontinuierlichen Weiterentwicklung des Mooreschen Gesetzes und den Fortschritten in der Technologie bewegen wir uns in eine Zukunft, in der Geräte kleiner, leistungsfähiger und vernetzter werden als je zuvor.
Es fällt uns oft schwer, das umzusetzen, von dem wir wissen, dass es gut für uns ist. Von der Aussage, dass wir einen Lebensgefährten lieben, bis hin zur Erinnerung daran, wie ein Pirat zu reden – es wird immer diejenigen geben, die behaupten, dass ein Tag, eine Woche oder ein Monat voller Ereignisse nicht nötig sei, weil sie diese Dinge bereits tun.
Hallo, Cyber-Enthusiasten! Willkommen zurück bei der OSINT-Serie zur Bedrohungsjagd. Im ersten Artikel habe ich Ihnen einen Überblick über OSINT und seine Bedeutung bei der Bedrohungsjagd gegeben.
[Alarm auslösen: Dieser Aufsatz enthält Screenshots von Menschen, die den Mörder von Jordan Neely loben.] Polizeibeamte haben endlich – und vielleicht widerstrebend – Daniel Penny, den Mann, der Jordan Neely bis zu seinem Tod gewürgt hat, wegen dieses Mordes angeklagt.
Wenn man erwachsen wird, wird einem oft gesagt, dass die Welt so ist, wie sie ist, und dass das Leben nur darin besteht, sein Leben in der Welt zu leben, niemals sein Leben zu riskieren, einfach einem festgelegten Weg zu folgen und am Ende zu sterben, und versucht, es nicht zu tun Schlage zu viel gegen die Wände. Aber das ist ein sehr begrenztes Leben.