0

Main Activity

I also want to add permission for camera and sms at same time like multiple request...help me please. when i run in kitkat its working fine and when i run in marshmallow then sms not send and dont show any error ... just go back to activity where its start.

public void SEND_SMS(){

     mynumber = (sharedPreferences.getString("string_number",""));
     myname = (sharedPreferences.getString("string_name",""));
     myremarks = (sharedPreferences.getString("string_remarks",""));
     myproject = (sharedPreferences.getString("string_project",""));
     String project = savePreferences(myproject,editproject.getText().toString());
     String remarks = savePreferences(myremarks,editremarks.getText().toString());
     String mysms = (sharedPreferences.getString("string_sms",""));
     //dialouge();
     combinedate = ""+y+month+d+"-"+h+":"+mins;
     combinevalue = "Name: "+myname+"\n"+"Project: "+project+"\n"+"Remarks: "+remarks+"\n"+"Type: "+enter;
     mobile = (sharedPreferences.getString("string_number",""));
     DBCreate();
     SubmitData2SQLiteDB();
     Toast.makeText(getApplicationContext(),"Thank You!",Toast.LENGTH_SHORT).show();
     try {
         byte[] data = combinevalue.getBytes("UTF-8");
         base64 = Base64.encodeToString(data, Base64.DEFAULT);

         byte[] dataname = myname.getBytes("UTF-8");
         stringname = Base64.encodeToString(dataname,Base64.DEFAULT);

         byte[] dataproject = project.getBytes("UTF-8");
         stringproject = Base64.encodeToString(dataproject,Base64.DEFAULT);

         byte[] dataremarks = remarks.getBytes("UTF-8");
         stringremarks = Base64.encodeToString(dataremarks,Base64.DEFAULT);

         byte[] datalong = longitude.getBytes("UTF-8");
         stringlong = Base64.encodeToString(datalong,Base64.DEFAULT);

         byte[] datalat = latitude.getBytes("UTF-8");
         stringlat = Base64.encodeToString(datalat,Base64.DEFAULT);

         byte[] datatype = enter.getBytes("UTF-8");
         stringtype = Base64.encodeToString(datatype,Base64.DEFAULT);

         byte[] datanumber = mobile.getBytes("UTF-8");
         stringnumber = Base64.encodeToString(datanumber,Base64.DEFAULT);

         byte[] datacombine = combinedate.getBytes("UTF-8");
         stringdate = Base64.encodeToString(datacombine,Base64.DEFAULT);





         base64 = combinevalue+"\n\n"+mysms+questionmark+"name="+stringname+"&"+"project="+stringproject+"&"+"remarks="+stringremarks+"&"+"lat="+stringlat+"&"+"long="+stringlong+"&"+"mobile="+stringnumber+"&"+"type="+stringtype+"&"+"date="+stringdate;

     } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
     }

     SmsManager sms = SmsManager.getDefault();
     ArrayList<String> parts = sms.divideMessage(base64);
     sms.sendMultipartTextMessage(mynumber,null,parts,null,null);

}
Junaid Hafeez
  • 1,618
  • 1
  • 16
  • 25

1 Answers1

0

Permission system has been changed from Android 6.0, the way we implement it. For marshmallow, you need to implement runtime permission system. Or manually from app settings you need to give permissions which by default is off.

Please refer this detailed link, how to implement permission systems with android 6.0 and greater.

Community
  • 1
  • 1
Nicks
  • 16,030
  • 8
  • 58
  • 65