Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

에이치의 모바일 앱 개발

error message dialog activity version 1.0.1 본문

Android/Android 개발 소스

error message dialog activity version 1.0.1

로이누리 2017. 12. 23. 02:24
/**
* Created by lsh on 2016-08-03.
* version 1.0.1
*/
public class ErrorMessageDialogActivity extends Activity {
private Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;

Init();
}

private void Init() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setFinishOnTouchOutside(false);

Intent intent = getIntent();
String errorMessage = intent.getStringExtra("Message");

SendMessage sendMessage = new SendMessage(errorMessage);

setContentView(makingLayout(sendMessage));
}

/**
* 다이어 로그 생성
* @param sendMessage 전송될 에러 로그
*/
private View makingLayout(final SendMessage sendMessage) {
LinearLayout layout = new LinearLayout(this);
TextView txt_message = new TextView(this);
Button btn_send = new Button(this);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

layout.setLayoutParams(params);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setGravity(Gravity.CENTER_HORIZONTAL);
layout.setPadding(10, 10, 10, 10);
txt_message.setLayoutParams(params);
txt_message.setGravity(Gravity.LEFT);
btn_send.setLayoutParams(params);
btn_send.setGravity(Gravity.CENTER_VERTICAL);

txt_message.setText("에러 발생\n예기치 못한 오류가 발생되어 앱이 종료되었습니다.\n에러 리포트를 전송 하기겠습니까?");
btn_send.setText("확인");

btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage.email(context);
System.exit(0);
}
});

layout.addView(txt_message);
layout.addView(btn_send);

return layout;
}
}

 


/**
* Created by lsh on 2016-08-04. * version 1.0.1
*/
public class SendMessage {
private String message;

public SendMessage(String message) {
if (message != null) {
this.message = message;
} else {
this.message = "";
}
}

public void email(Context context) {
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.addCategory(Intent.CATEGORY_DEFAULT);
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"lsh228@odsay.com"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "App Error Report");
emailIntent.putExtra(Intent.EXTRA_TEXT, message);

if(context != null) {
PackageManager pm = context.getPackageManager();
List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
ResolveInfo best = null;

for (final ResolveInfo info : matches) {
if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail")) {
best = info;
}
}

if (best != null) {
emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
context.startActivity(emailIntent);
} else {
context.startActivity(Intent.createChooser(emailIntent, "이메일 앱 선택"));
}
}
}
}

 

'Android > Android 개발 소스' 카테고리의 다른 글

다른 앱 연결 1.0.2 <방법 1>  (0) 2017.12.23
restart application version 1.0.1  (0) 2017.12.23
uncaughtexception version 1.0.2  (0) 2017.12.23
File & I/O  (0) 2017.12.23
DBunzip version 1.0.1  (0) 2017.12.23
Comments