Tôi đang cố gắng liên kết nút với ứng dụng thư. Không gửi thư, nhưng chỉ để mở hộp thư đến.Làm cách nào để mở hộp thư đến mặc định từ mã Android?
Tôi có nên làm điều này với Intent intent = new Intent(...)
không?
Nếu có, cần có gì giữa ()
?
Tôi đang cố gắng liên kết nút với ứng dụng thư. Không gửi thư, nhưng chỉ để mở hộp thư đến.Làm cách nào để mở hộp thư đến mặc định từ mã Android?
Tôi có nên làm điều này với Intent intent = new Intent(...)
không?
Nếu có, cần có gì giữa ()
?
Rất tiếc, nó không có vẻ đầy hứa hẹn. Điều này đã được hỏi trước
How do I launch the email client directly to inbox view?
bạn có thể mở ứng dụng email trong chế độ soạn, nhưng bạn dường như đã biết điều đó.
You can use this but it is for gmail only
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
startActivity(emailIntent);
Có, bạn có thể mở hộp thư đến email mặc định của Android.
Sử dụng mã này:
Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.email");
startActivity(intent);
Mã này hoạt động, bạn phải cấu hình Android thư mặc định thiết bị của bạn đầu tiên. Nếu bạn đã định cấu hình thư của mình, nó hoạt động tốt. Nếu không, nó sẽ đóng lại với một NullPointerException
.
là mũ thực sự cần thiết? – copolii
bạn biết rằng khi ai đó đưa ra câu trả lời, hãy cố gắng tìm ra đúng hay sai trên ngăn xếp thay vì tìm kiếm mũ hoặc nhỏ, nếu bạn muốn thực hiện điều đó, hãy thử một trang web thú vị khác không phải loại trang web lập trình này –
: Giải pháp giả định rằng người dùng có một ứng dụng với gói "com.android.email" và đó là ứng dụng email mặc định mà họ sử dụng. Nếu tôi có, ví dụ, thư K9 và tôi sử dụng nó làm ứng dụng khách mặc định của tôi, việc mở ứng dụng thư khách hàng không hữu ích đối với tôi. Mục đích không phải là để làm cho niềm vui, có điều này được gọi là "nghi thức internet". Khi bạn gõ vào tất cả các mũ nó được coi là SHOUTING và thô lỗ. Bên cạnh đó nó làm cho văn bản của bạn trông đáng ghét và khó đọc. Có một lý do tại sao có vốn và chữ nhỏ. Văn bản được định dạng đúng cách dễ đọc hơn nhiều so với TẤT CẢ CAPS. – copolii
Bạn có thể mở Android client mặc định e-mail sử dụng này:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.setClassName("com.android.email", "com.android.email.activity.Welcome");
emailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(emailIntent);
điều này tạo một email mới, câu hỏi ban đầu là chỉ cần mở ứng dụng email mặc định. –
Mã này làm việc cho tôi. Nó mở ra một bảng chọn với tất cả các ứng dụng email đăng ký thiết bị và thẳng vào Inbox:
Intent emailIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:"));
PackageManager pm = getPackageManager();
List<ResolveInfo> resInfo = pm.queryIntentActivities(emailIntent, 0);
if (resInfo.size() > 0) {
ResolveInfo ri = resInfo.get(0);
// First create an intent with only the package name of the first registered email app
// and build a picked based on it
Intent intentChooser = pm.getLaunchIntentForPackage(ri.activityInfo.packageName);
Intent openInChooser =
Intent.createChooser(intentChooser,
getString(R.string.user_reg_email_client_chooser_title));
// Then create a list of LabeledIntent for the rest of the registered email apps
List<LabeledIntent> intentList = new ArrayList<LabeledIntent>();
for (int i = 1; i < resInfo.size(); i++) {
// Extract the label and repackage it in a LabeledIntent
ri = resInfo.get(i);
String packageName = ri.activityInfo.packageName;
Intent intent = pm.getLaunchIntentForPackage(packageName);
intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
}
LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[intentList.size()]);
// Add the rest of the email apps to the picker selection
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
startActivity(openInChooser);
}
Lỗi này xảy ra khi không thể giải quyết mục đích khởi chạy - cần kiểm tra thêm cho điều đó! –
Nếu mục tiêu là để mở ứng dụng email mặc định để xem hộp thư đến, sau đó chính là thêm một loại ý định và sử dụng ACTION_MAIN ý định như vậy:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_EMAIL);
getActivity().startActivity(intent);
https://developer.android.com/reference/android/content/Intent.html#CATEGORY_APP_EMAIL
xin lỗi không phải là một nhưng hãy thử sử dụng này một –
MailClient ý định = new Intent (Intent.ACTION_VIEW); mailClient.setClassName ("com.google.android.gm", "com.google.android.gm.ConversationListActivity"); startActivity (mailClient); –
tnx cho câu trả lời của bạn. Tôi vừa mới nhận ra rằng tôi đang cố gắng truy cập ứng dụng thư HTC chứ không phải ứng dụng thư mặc định. Có cách nào để mở hộp thư đó trong hộp thư đến không? hoặc bạn có thể chỉ cho tôi nơi tôi có thể tìm thấy thông tin đó không? –