最终用户许可
来源:互联网 发布:网络鉴黄师 编辑:程序博客网 时间:2024/04/29 20:30
1、EULA文件,将其添加到assets目录。
2、在应用程序中显示EULA。主要是在一个对话框中显示EULA文件内容。
Eula.java
public class EULA {
private static final String ASSET_EULA = "EULA";
private static final String PREFERENCE_EULA_ACCEPTED = "eula.accepted";
private static final String PREFERENCE_EULA = "eula";
/*
* 用于让Activity知道何时接受了EULA的回调函数
*/
static interface OnEulaAgreedTo {
// 在用户接收eul后调用,同时对话框结束
void OnEulaAgreedTo();
}
/*
* 用于显示EULA,此函数在你的主Activity的OnCreate()函数中调用
*
* @param activity 如果用户拒绝EULA,需要结束的Activity
*
* @return 用户是否接受
*/
static boolean show(final Activity activity) {
final SharedPreferences preferences = activity.getSharedPreferences(
PREFERENCE_EULA, Activity.MODE_PRIVATE);
if (!preferences.getBoolean(PREFERENCE_EULA_ACCEPTED, false)) {
final AlertDialog.Builder builder = new AlertDialog.Builder(
activity);
builder.setTitle(R.string.eula_title);
builder.setCancelable(true);
builder.setPositiveButton(R.string.eula_accept,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
accept(preferences);
if (activity instanceof OnEulaAgreedTo) {
((OnEulaAgreedTo) activity).OnEulaAgreedTo();
}
}
});
builder.setNegativeButton(R.string.eula_refuse,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
refuse(activity);
}
});
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
refuse(activity);
}
});
builder.setMessage(readEula(activity));
builder.create().show();
return false;
}
return true;
}
private static void accept(SharedPreferences preferences) {
// 获得Editor,写入键值对
preferences.edit().putBoolean(PREFERENCE_EULA_ACCEPTED, true).commit();
}
private static void refuse(Activity activity) {
activity.finish();
}
// 读取Eula文件
private static CharSequence readEula(Activity activity) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(activity.getAssets()
.open("ASSET_EULA")));
String line;
StringBuilder buffer = new StringBuilder();
while ((line = in.readLine()) != null)
buffer.append(line).append('/n');
return buffer;
} catch (IOException e) {
return "";
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
接下来在应用程序的主Activity的onCreate()函数中调用Eula.show(this)。
- 最终用户许可
- 许可
- DataPower 面向最终用户的编程
- 不要对最终用户谈云
- 不要对最终用户谈云
- UI设计师应了解最终用户的十件事
- UI设计师应了解最终用户的十件事
- HTML5对最终用户的3大优势
- 对最终用户而言界面就是系统
- ARCGIS 许可
- 安全许可
- 许可协议
- InstallMate许可
- IBM开发QEDwiki项目 实现最终用户编程梦想
- Html的Mr right——最终用户优先
- 【译】如何精确判断最终用户响应时间过长的原因?
- 性能极客马振雄:不提升最终用户体验的APM就是耍流氓
- 【译】怎么精确判断最终用户响应时间过长的原因
- 桌面部件
- hdu1102绝对模板
- Samba服务器登录失败
- 转载- App Store开发者:我是传奇
- Android应用程序发布
- 最终用户许可
- Oracle的临时表空间
- 应用程序签名
- ADB的使用与在模拟器中虚拟SD卡
- 深入理解linux启动过程
- UI 设计师的盛宴
- 网站发展趋势
- 如何自己实现IEnumerable和IEnumerator接口以支持foreach语句
- java 正则表达式详解