デバイス管理レシーバーでダイアログを作成する際に問題が発生しています。
エラー: ウィンドウを追加できません -- トークン null はアプリケーション用ではありません。
設定に保存されているパスワードを確認するダイアログを作成したいだけです。一致する場合は、デバイス管理者のチェック ボックスを無効にすることができます。それ以外の場合は終了する必要があります。
何か案は
public static class DeviceAdminSampleReceiver extends DeviceAdminReceiver {
void showToast(Context context, String msg) {
//String status = context.getString(R.string.admin_receiver_status, msg);
// Toast.makeText(context, status, Toast.LENGTH_SHORT).show();
}
@Override
public void onEnabled(Context context, Intent intent) {
Toast.makeText(context, "Enabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onDisabled(Context context, Intent intent) {
showMyDialog(context);
Toast.makeText(context, "Disabled", Toast.LENGTH_SHORT).show();
}
public void showMyDialog(final Context context){
AlertDialog dialog = null;
SharedPreferences prefs= context.getSharedPreferences("MainPrefs", 0);
final String tempPass = prefs.getString("password", "");
LayoutInflater factory = LayoutInflater.from(context);
final View deviceDialog = factory.inflate(R.layout.device_receiver_layout, null);
final EditText input = (EditText) deviceDialog.findViewById(R.id.dialog_editText);
Button done = (Button) deviceDialog.findViewById(R.id.button2);
Button cancel = (Button) deviceDialog.findViewById(R.id.button1);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(deviceDialog);
builder.setCancelable(false);
builder.setTitle("Ultimate SMS Password");
//builder.show();
dialog = builder.create();
dialog.show();
done.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(tempPass.regionMatches(0, input.getText().toString(), 0, tempPass.length()))
{
Toast.makeText(context, "Matches", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context, "Not Matches", Toast.LENGTH_SHORT).show();
//finish();
}
}
});
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(context, "Exit.", Toast.LENGTH_SHORT).show();
}
});
}