我只有一项服务的应用程序。以下是我的服务代码,它无法调用设备的内置短信应用程序。服务无法通过内置应用程序发送短信
public class smsservice extends Service {
private static final String TAG = "MyService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "Service created.");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("TAG", "Service started.");
try {
String sb = (String) intent.getSerializableExtra("dest1");
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", sb);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS faild, please try again later!",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
Log.d("slog", "onDestroy()");
super.onDestroy();
}
}
我已经包括在清单文件
<uses-permission android:name="android.permission.SEND_SMS" />
允许有我丢失的东西或者是它甚至有可能
我打算通过另一个应用程序通过明确的意图调用此服务。是的,该服务已导出。我需要在Intent调用addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),然后在调用服务 –
@ mine0901的应用程序中调用startActivity()或startService()之前调用addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) '你打算传递给'startActivity()'。 – CommonsWare
非常感谢。它解决了我的问题。 –