You can get the phone number with
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
And in Manifest:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
However this wont work all off the time (some comments in similar questions here on SO like this even suggest it hardly works at all).
So what you should do is prompt the user when the app starts, get his input from a textfield or something and store it somewhere you will be able to get it. The best way for you might be to store it in SharedPreferences:
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
String phoneNumber = "";
//save
prefs.edit().putString("phoneNumber", phoneNumber).apply();
//read
phoneNumber = prefs.getString(phoneNumber, "");
Similar to this you can save a bool (putBoolean and getBoolean) after you first started the app, so you can keep track of that. Just set it to false after you got the number and check for it every time you start the app again.