<uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<receiver android:name="MessageReceiver" android:enabled="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver> <receiver android:name="CallReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"/> </intent-filter> </receiver>
// myMessageReceiver = new MessageReceiver(); // IntentFilter e = new IntentFilter(); // e.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); // e.addAction("android.provider.Telephony.SMS_RECEIVED"); // registerReceiver(myMessageReceiver, e); // unregisterReceiver(myMessageReceiver);
// Notification notif = new Notification(R.drawable.ic_launcher, "Notice service started", System.currentTimeMillis()); // (Activity) Intent intent1 = new Intent(this, NoticeSetting.class); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent1, 0); // notif.setLatestEventInfo(this, "Notice service enabled", "For stopped it click me", pIntent); // , notif.flags |= Notification.FLAG_ONGOING_EVENT ; // startForeground(NOTIFICATION_ID, notif ); // stopForeground(true);
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <receiver android:name=".BootBroadReceiv" android:enabled="true" android:exported="false" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
public class MessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // - } }
phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
String Name=" "; phoneNumber = PhoneNumberUtils.stripSeparators(phoneNumber); String[] projection = new String[] { ContactsContract.Data.CONTACT_ID, ContactsContract.Contacts.LOOKUP_KEY, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.STARRED, ContactsContract.Contacts.CONTACT_STATUS, ContactsContract.Contacts.CONTACT_PRESENCE }; String selection = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'"; String selectionArgs [] ={ phoneNumber }; Cursor cursor = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, selection, selectionArgs, null); if(cursor.getCount()>0) { cursor.moveToFirst(); Name = cursor.getString(2) + " "; } else Name = "Unknow";
<uses-permission android:name="android.permission.READ_CONTACTS" />
Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); SmsMessage[] msgs = new SmsMessage[pdus.length]; ArrayList<String> numbers = new ArrayList<String>(); ArrayList<String> messages = new ArrayList<String>(); // for (int i=0; i<msgs.length; i++){ msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); // numbers.add(msgs[i].getOriginatingAddress()); // messages.add(msgs[i].getMessageBody().toString()); }
InetAddress serv_addr = null; serv_addr = InetAddress.getByName("255.255.255.255"); int port= 35876; DatagramSocket sock = null; sock = new DatagramSocket(); //mess - byte [] buf = mess.getBytes(); DatagramPacket pack= new DatagramPacket(buf, buf.length,serv_addr,port); sock.send(pack); sock.close();
<uses-permission android:name="android.permission.INTERNET" />
int main() { int z; char srvr_addr[8] = "0.0.0.0"; struct sockaddr_in adr_inet; // AF_INET struct sockaddr_in adr_clnt; // AF_INET socklen_t len_inet; int s; // char dgram[512]; // s = socket(AF_INET,SOCK_DGRAM,0); if ( s == -1 ) { displayError("socket()"); } memset(&adr_inet,0,sizeof(adr_inet)); adr_inet.sin_family = AF_INET; adr_inet.sin_port = htons(35876); adr_inet.sin_addr.s_addr =inet_addr(srvr_addr); if ( adr_inet.sin_addr.s_addr == INADDR_NONE ) { displayError("bad address."); } len_inet = sizeof(adr_inet); // z = bind(s, (struct sockaddr *)&adr_inet, len_inet); if ( z == -1 ) { displayError("bind()"); } while(1) { len_inet = sizeof adr_clnt; // z = recvfrom(s, dgram, 512, 0, (struct sockaddr *)&adr_clnt, &len_inet); if ( z < 0 ) { displayError("recvfrom(2)"); } dgram[z] = 0; // null terminate if ( !strcasecmp(dgram,"QUIT") ) { break; // Quit server } //dgram printf("%s\n",dgram);
if (fork() == 0) { execl("/usr/bin/notify-send","notify-send"," :", dgram, (char *) 0); perror("exec one failed"); exit(1); }
Source: https://habr.com/ru/post/211921/
All Articles