Отправить индивидуальное и групповое сообщение с помощью смс и WhatsApp

У меня есть следующий код для отправки SMS и отправки отдельного сообщения в WhatsApp. Я хочу, чтобы как автоматизированные, в настоящее время WhatsApp предлагает выбрать пользователя, и SMS-сообщение не отправляется с исключением: "Отправка SMS-сообщения: uid 10262 не имеет android.permission.SEND_SMS.

Как я могу автоматизировать WhatsApp для автоматической отправки пользователю / группе? И дать правильное разрешение на отправку смс

Вот AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECIEVE_SMS"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Вот моя MainActivity: открытый класс MainActivity расширяет ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
    }
}

@Override
protected void onStart() {
    super.onStart();
    new HttpRequestTask().execute();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_refresh) {
        new HttpRequestTask().execute();
        return true;
    }
    if (id == R.id.action_whatsApp) {
        Intent myIntent = new Intent("android.intent.action.MAIN");
        myIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));
        myIntent.putExtra("Are you interested in the job",
                PhoneNumberUtils.stripSeparators("0777777777") + "@s.whatsapp.net");
        startActivity(myIntent);

        Snackbar.make(item.getActionView(), "sent message", Snackbar.LENGTH_SHORT).show();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

public void onClickBtn(View v) {
    // sendSMS();
    sendSMSNew();
    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent);
    new HttpRequestTask().execute();
    Toast.makeText(this, "Clicked on Button" + v.getId(), Toast.LENGTH_LONG).show();
}

public void sendSMSNew() {
    try {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage("xxxxxxxxxxx", null, "test", null, null);
        Toast.makeText(getApplicationContext(), "Message Sent", Toast.LENGTH_LONG).show();
    } catch (Exception ex) {
        Toast.makeText(getApplicationContext(), ex.getMessage().toString(), Toast.LENGTH_LONG).show();
        ex.printStackTrace();
    }
}

/**
 * A placeholder fragment containing a simple view.
 */
public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.content_main, container, false);
        return rootView;
    }
}

private class HttpRequestTask extends AsyncTask<Void, Void, Greeting> {
    @Override
    protected Greeting doInBackground(Void... params) {
        try {
            final String url = "http://rest-service.guides.spring.io/greeting";
            RestTemplate restTemplate = new RestTemplate();
            restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
            Greeting greeting = restTemplate.getForObject(url, Greeting.class);
            return greeting;
        } catch (Exception e) {
            Log.e("MainActivity", e.getMessage(), e);
        }

        return null;
    }

    @Override
    protected void onPostExecute(Greeting greeting) {
        TextView greetingIdText = (TextView) findViewById(R.id.id_value);
        TextView greetingContentText = (TextView) findViewById(R.id.content_value);
        greetingIdText.setText(greeting.getId());
        greetingContentText.setText(greeting.getContent());
    }

}

}

0 ответов

Другие вопросы по тегам