Android电话薄编程
最佳答案
要在 Android 中编写电话薄应用程序,您需要了解电话薄应用程序的基本架构和功能。以下是编写电话薄应用程序的一些基本步骤:
创建一个新的 Android Studio 项目,并添加电话薄应用程序的 AndroidManifest.xml 文件。该文件定义应用程序的应用程序标识符、权限、用户数据等。
```xml
...
android:minSDKVersion="16"
android:targetSDKVersion="16" />
...
```
创建一个联系人对象,并使用 Gradle 构建应用程序。
```java
import android.content.Context;
import android.os.Build;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ContactApp {
private static final String CONTACT_ID = "contact_id";
private static final String CONTACT_NAME = "contact_name";
private static final String Contact_电话号码 = "contact_phone";
private static final String Contact_短信验证码 = "contact_sms_code";
private static final int SCREEN_WIDTH = 640;
private static final int SCREEN_HEIGHT = 480;
private EditText contactInput;
private TextView contactOutput;
private Button contactButton;
private BufferedReader contactReader;
private String contactString;
private String smsCode;
public ContactApp() {
this.contactInput = (EditText) findViewById(Contact_ID);
this.contactOutput = (TextView) findViewById(Contact_ID);
this.contactButton = (Button) findViewById(Contact_ID);
this.contactButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String contactText = contactInput.getText().toString();
String smsCode = contactOutput.getText().toString();
if (contactText.equals("") || smsCode.equals("")) {
Toast.makeText(this, "Please enter contact information",Toast.LENGTH_LONG).show();
return;
}
try {
contactString = contactText.toString();
contactReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(contactString))), SCREEN_WIDTH, SCREEN_HEIGHT);
String line;
while ((line = contactReader.readLine()) != null) {
contactOutput.append(line);
}
contactReader.close();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "Error reading contact string",Toast.LENGTH_LONG).show();
return;
}
if (smsCode.equals("")) {
String smsCodeStr = smsCode.toString();
smsCodeStr = smsCodeStr.replace(" ", "_");
smsCode = Integer.parseInt(smsCodeStr);
contactOutput.setText(smsCode + " " + contactString);
} else {
String smsCodeStr = smsCode.toString();
smsCodeStr = smsCodeStr.replace(" ", "_");
smsCode = Integer.parseInt(smsCodeStr);
contactOutput.setText(smsCode + " " + contactString);
}
}
});
}
public void readContactString() {
try {
contactString = contactInput.getText().toString();
contactReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(contactString))), SCREEN_WIDTH, SCREEN_HEIGHT);
String line;
while ((line = contactReader.readLine()) != null) {
contactOutput.append(line);
}
contactReader.close();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "Error reading contact string",Toast.LENGTH_LONG).show();
}
}
public void sendContactMessage() {
try {
String smsCode = contactOutput.getText().toString();
String smsText = contactInput.getText().toString();
if (smsCode.equals("")) {
Toast.makeText(this, "Please enter message",Toast.LENGTH_LONG).show();
return;
}
if (smsText.equals("")) {
Toast.makeText(this, "Please enter message",Toast.LENGTH_LONG).show();
return;
}
try {
String filePath = new File(contactString).toURI().getPath();
String[] args = {"/data/data/com.example.contact/files/", smsText};
Intent intent = new Intent(Intent.ACTION_VIEW, filePath);
startActivity(intent);
finish();
return;
} catch (URISyntaxException e) {
e.printStackTrace();
Toast.makeText(this, "Error reading sms text",Toast.LENGTH_LONG).show();
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
contactOutput.setText(smsText);
}
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "Error sending sms",Toast.LENGTH_LONG).show();
return;
}
}
}
```