我的应用在应用崩溃时使用 ACRA 发送静默通知。
官方文档展示了如何在XML中设置用户电子邮件,这个SO问题显示了如何通过注释进行设置,但是如何在代码中设置用户电子邮件地址?
假设我开始朝着正确的方向前进,这就是我所得到的......
ACRA.init(this);
ACRAConfiguration acraConfig = ACRA.getConfig();
//acraConfig.howToSetUserEmail???
更新
感谢 323go 的有用答案,以下是工作代码:
import org.acra.*;
import org.acra.annotation.ReportsCrashes;
import android.app.Application;
import android.content.Context;
@ReportsCrashes(
formKey = "", // This is required for backward compatibility but not used
formUri = "http://example.com/crash-reports/my-script-which-emails-me-the-acra-data.php",
sharedPreferencesName = "THE_NAME_OF_MY_SHARED_PREFS_FILE",
sharedPreferencesMode = Context.MODE_PRIVATE
)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// The following line triggers the initialization of ACRA
ACRA.init(this);
}
}
然后,在我的应用程序的其他地方,我以类似的方式设置acra.user.email
首选项,如下面的接受答案所示。
文档说你可以通过SharedPreferences
来做到这一点:
getSharedPreferences().edit().putString( "acra.user.email", "your@email.com" ).commit();
应该做这个伎俩。我还没有测试过,因为我认为在我的设置中设置运行时电子邮件地址没有多大用处。