在安装Android应用程序之前,我可以让用户同意合法的免责声明吗?

我即将准备推出我的第一个Android应用程序(来自美国Google Checkout / Merchant帐户和美国银行帐户等),我希望用户至less同意他/她之前的某种简单的免责声明可以安装应用程序。

据你所知,是否有可能,如果是的话,最好的办法是什么?

您的帮助和提示,不胜感激。

Solutions Collecting From Web of "在安装Android应用程序之前,我可以让用户同意合法的免责声明吗?"

当你说“ 之前他/她可以安装应用程序 ”我想你的意思是在同一个屏幕上,允许用户安装应用程序,你要放弃免责声明。 那么,我认为这是不可能的。 事实上,一个应用程序可以以不同的方式安装(从第三方应用程序或通过在固定手机上使用abd install )。

所以,我的build议是把这个免责声明放在主要活动中。 您可以在某处保存用户决定(最简单的方法是首选项)。 这样,您可以检查用户是否接受了免责声明。 当然,如果用户不接受,你就不要让他/她使用你的应用程序。

简单的例子

 public class MainActivity extends Activity { public static final String PREFS_NAME = "user_conditions"; @Override protected void onCreate(Bundle state){ super.onCreate(state); // bla bla bla // Check whether the user has already accepted SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean accepted = settings.getBoolean("accepted", false); if( accepted ){ // do what ever you want... for instance: startActivity(new Intent(this, RealApp.class)); }else{ // show disclaimer.... // for example, you can show a dialog box... and, // if the user accept, you can execute something like this: // We need an Editor object to make preference changes. // All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("accepted", true); // Commit the edits! editor.commit(); } } } 

按照Cristian的例子,我是这样实现Dialog的:

在activity类中,我创build了这个方法:

  protected Dialog onCreateDialog(int id){ // show disclaimer.... // for example, you can show a dialog box... AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("LEGAL DISCLAIMER: ... ") .setCancelable(false) .setPositiveButton("Agree", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // and, if the user accept, you can execute something like this: // We need an Editor object to make preference changes. // All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("accepted", true); // Commit the edits! editor.commit(); } }) .setNegativeButton("Disagree", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { nm.cancel(R.notification.running); // cancel the NotificationManager (icon) System.exit(0); } }); AlertDialog alert = builder.create(); return alert; } 

在onCreate()方法的开始,我添加了这些行:

  // Check whether the user has already accepted SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean accepted = settings.getBoolean("accepted", false); if( accepted ){ // do what ever you want... for instance: }else{ showDialog(0); } 

干杯,克里斯