-
مطالب مشابه
-
توسط Androidm
سلام خدمت همه دوستان عزیز.من با استفاده از تائیدیه پیامکی ثبت نام کاربر رو انجام میدم این کار بدون مشکل هسا اما مشکل اصلیم اینکه توکن رو دریافت نمیکنم باpostmanهم تست میکنی به درستی توکن نمایش داده میشه اما داخل برنامه nullنمایش داده میشه ممنون میشم راهنمایی کنید
class VerifyPhoneNumberActivity : AppCompatActivity(), Broadcast_retiversms.Otplistner { lateinit var binding: ActivityVerifyPhoneNumberBinding lateinit var smsreciver: Broadcast_retiversms lateinit var countDownTimer: CountDownTimer var timersecounds_mili = 0L val viewModel: AuthViewModel by viewModel() val compositeDisposable = CompositeDisposable() @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityVerifyPhoneNumberBinding.inflate(layoutInflater) setContentView(binding.root) SmsRetrieversetup() Timerstart(60000) binding.txtMsgPhone.text = "کد ارسال شده برای :" + intent.getStringExtra("mobile") binding.otpView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(s: Editable?) { if (s.toString().length == 5) { Senddata(binding.otpView.text.toString(), intent.getStringExtra("mobile")!!) } } }) } fun SmsRetrieversetup() { smsreciver = Broadcast_retiversms() smsreciver.setOtplistner(this) val intentFilter = IntentFilter() intentFilter.addAction(SmsRetriever.SMS_RETRIEVED_ACTION) this.registerReceiver(smsreciver, intentFilter) val client = SmsRetriever.getClient(this) val task = client.startSmsRetriever() task.addOnSuccessListener { } task.addOnFailureListener { } } fun Senddata(code: String, mobile: String) { val callback = viewModel.Sendcode(mobile, code) callback.enqueue(object : Callback<Model_register> { override fun onResponse( call: Call<Model_register>, response: Response<Model_register>, ) { if (response.isSuccessful) { if (response.body()!!.status == "ok") { Timber.e(response.body()!!.token) // val shardprefrnsess = getSharedPreferences("user", 0) // val editor = shardprefrnsess.edit() // editor.putString("moible", response.body()!!.mobile) // editor.apply() // val intent = Intent(applicationContext, HomeFragment::class.java) // startActivity(intent) // finish() } } } override fun onFailure(call: Call<Model_register>, t: Throwable) { MaterialDialog(this@VerifyPhoneNumberActivity).show { title(R.string.error_title) cornerRadius(22f) positiveButton(text = "باشه") } } }) } fun Timerstart(timersecounds: Long) { countDownTimer = object : CountDownTimer(timersecounds, 1000) { override fun onTick(p0: Long) { timersecounds_mili = p0 UpdateChaneUi() } override fun onFinish() { countDownTimer.cancel() binding.txttimer.setText("ارسال مجدد کد فعال سازی") binding.txttimer.setOnClickListener { val appsignatureHashHelper = AppSignatureHashHelper(applicationContext) val callback = viewModel.RegisterUser( intent.getStringExtra("mobile")!!, appsignatureHashHelper.appSignatures[0] ) callback.enqueue(object : Callback<Model_register> { override fun onResponse( call: Call<Model_register>, response: Response<Model_register>, ) { if (response.isSuccessful) { if (response.body()!!.status == "ok") { Timerstart(60000) UpdateChaneUi() } } } override fun onFailure(call: Call<Model_register>, t: Throwable) { MaterialDialog(this@VerifyPhoneNumberActivity).show { title(R.string.error_title) cornerRadius(22f) positiveButton(text = "باشه") } } }) } } } countDownTimer.start() } @SuppressLint("SetTextI18n") fun UpdateChaneUi() { val min = (timersecounds_mili / 1000) / 60 val sec = (timersecounds_mili / 1000) % 60 binding.txttimer.text = "$min:$sec" } override fun otpmessagesms(opt: String) { unregisterReceiver(smsreciver) val pattern = Pattern.compile("(\\d{5})") val matcher = pattern.matcher(opt) var value = "" if (matcher.find()) { value = matcher.group(1) binding.otpView.setText(value) } if (!value.isEmpty()) { Senddata(intent.getStringExtra("mobile")!!, value) } } override fun otpmessagetimeout() {} override fun otpmessagesms_error() {} override fun onDestroy() { LocalBroadcastManager.getInstance(this).unregisterReceiver(smsreciver) super.onDestroy() } override fun onStop() { super.onStop() compositeDisposable.clear() } }
-
توسط aliazmoodeh
سلام من یه آپی دارم یه قسمت وجود داره که اطلاعات رو از سرور میگیره و تو ریسایکلرویو نمایش میده من میخوام این اطلاعات رو تو حالت افلاین هم داشته باشم یعنی چی یعنی بتونم اطلاعاتی که از سرور گرفتم قبلا رو وقتی کاربر اینترنت بهش نمایش بدم دقیقن مثله تلگرام میگم ولی نمیدونم باید چیکار کنم اگر اموزشی در این رابط دارید بهم بگید یا سورسی دارید بهم بگید پولی یا رایگان باشه برام فرقی نمیکنه فقط میخوام مشکلمو حل کنه
-
توسط Zeynab Tri
سلام. دوستان بنده یک عدد تازه کار در برنامه نویسی اندروید هستم و نمیدونم این ارور رو چطور حل کنم. ممنون میشم اگر کسی میتونه من رو راهنمایی کنه.عکسش رو گذاشتم.
-
توسط moein123
سلام دوستان خوبین؟
من برای آپ خودم ثبتنام و لاگین دارم میسازم
ثبتنام کاربر به خوبی کار میکنه و مشکلی نداره
ولی برای لاگین کردن نمیدونم چرا کار نمیکنه
پیغام خطا هم نمیده
ببینین این کد سمت سروری که نوشتم
<?php if($_SERVER['REQUEST_METHOD']=='POST'){ $mail2=$_POST['mail']; $password=$_POST['pass']; require_once 'connect.php'; $sql = "SELECT * FROM register WHERE mail='$mail2' "; $response=mysqli_query($conn,$sql); $result=array(); $result['login']=array(); if(mysqli_num_rows($response)===1){ $row=mysqli_fetch_assoc($response); if(password_verify($password,$row['pass'])){ $index['name']=$row['name']; $index['mail']=$row['mail']; array_push($result['login'],$index); $result['okk']='1'; $result['message']='okk'; echo json_encode($result); mysqli_close($conn); }else{ $result['okk']='0'; $result['message']='error'; echo json_encode($result); mysqli_close($conn); } } } ?> و اینم کد های جاوای اندروید که نوشتم
package com.android.register1; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.print.PageRange; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.Toast; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import com.google.android.material.snackbar.Snackbar; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; public class loginn extends AppCompatActivity { EditText edt_username,edt_password_login; Button btn_login; ProgressBar my_progcess; static String url_login="http://192.168.1.103/register2/login.php"; LinearLayout my_manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_loginn); find_all(); } private void find_all() { edt_username=findViewById(R.id.edt_username); edt_password_login=findViewById(R.id.edt_pass_login); my_progcess=findViewById(R.id.my_progcess_login); btn_login=findViewById(R.id.btn_login); my_manager=findViewById(R.id.my_manager); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String musername=edt_username.getText().toString().trim(); String mpassword=edt_password_login.getText().toString().trim(); if(!musername.isEmpty() || !mpassword.isEmpty()){ my_login(musername,mpassword); }else { edt_username.setError("username"); edt_password_login.setError("password"); } } }); } public void my_login(final String mail,final String pass){ my_progcess.setVisibility(View.VISIBLE); btn_login.setVisibility(View.GONE); StringRequest request=new StringRequest(Request.Method.POST, url_login, new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject jsonObject=new JSONObject(response); String message=jsonObject.getString("okk"); JSONArray jsonArray=jsonObject.getJSONArray("login"); if(message.equals("1")){ for (int i = 0; i <jsonArray.length() ; i++) { JSONObject jsonObject1=jsonArray.getJSONObject(i); String name=jsonObject1.getString("name").trim(); String mail=jsonObject1.getString("mail").trim(); Snackbar snackbar=Snackbar.make(my_manager, name+mail+"لاگین شدید",Snackbar.LENGTH_LONG); snackbar.getView().setTranslationY(-100); snackbar.show(); } } } catch (JSONException e) { e.printStackTrace(); Toast.makeText(loginn.this, "error1"+e.toString(), Toast.LENGTH_SHORT).show(); my_progcess.setVisibility(View.GONE); btn_login.setVisibility(View.VISIBLE); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(loginn.this, "error2"+error.toString(), Toast.LENGTH_SHORT).show(); my_progcess.setVisibility(View.GONE); btn_login.setVisibility(View.VISIBLE); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String,String>params=new HashMap<>(); params.put("mail",mail); params.put("pass",pass); return params; } }; RequestQueue requestQueue= Volley.newRequestQueue(this); requestQueue.add(request); } } ممنون میشم کمکم کنید
-
توسط hossein1212
سلام
من در اجرا شبیه ساز به مشکل زیر خورده ام راه حلی داره
اینترنتم اوکیه ولی دانلود نمیکنه
-
-
فایل
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .