2012-06-29 2 views
1

Я пытаюсь создать простейшее приложение, которое отправит пользователя в определенное (установленное системой) приложение (системные настройки, календарь, браузер и т. Д.) При нажатии пользователем с главного экрана или приложение.Открытие системного приложения с использованием намерения

Например, в настоящее время я пытаюсь открыть системные настройки, когда запускается мое приложение, точно так же, как ярлык для настроек.

Возможно ли реализовать это так, как я хочу? У кого-нибудь есть предложения?

Вот мой код:

import android.app.Activity; 
import android.content.Intent; 
import android.content.pm.PackageManager; 


public class MainActivity extends Activity { 

    public void LaunchComponent (String packageName, String name){ 
     Intent i = new Intent(Intent.ACTION_MAIN); 
     PackageManager manager = getPackageManager(); 
     i = manager.getLaunchIntentForPackage("com.sec.android.app.controlpanel"); 
     i.addCategory(Intent.CATEGORY_LAUNCHER); 
     startActivity(i); 

    } 
} 

я в настоящее время не имеет файл макет, такие как main.xml, в моем приложении, так как он не имеет пользовательский интерфейс или компоновки элементов. Все, что он должен сделать, это отправить пользователя в другое приложение. Я использую этот учебник (отсутствует ссылка), и я реализовал все примеры кода, и я не могу понять, я новичок в разработке Android, а java - не лучший язык. Открыта для любой критики или предложений.

+0

В чем проблема? как выше код не является полным –

ответ

3

Вы должны сделать вызов LaunchComponent, который может быть сделан в функции OnCreate первого жизненного цикла обратного вызова

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    LaunchComponent (packageName, name); 
} 

обновленного

import android.app.Activity; 
import android.content.Intent; 
import android.content.pm.PackageManager; 


public class MainActivity extends Activity { 

public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     LaunchComponent ("com.sec.android.app.controlpanel", "abc?"); 
    } 


public void LaunchComponent (String packageName, String name){ 
    Intent i = new Intent(Intent.ACTION_MAIN); 
    PackageManager manager = getPackageManager(); 
    i = manager.getLaunchIntentForPackage(packageName); 
    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    startActivity(i); 

} 
+0

извините, но все равно не получите? –

+0

Да, у меня все еще есть проблемы, в Eclipse компонент запуска, он хочет, чтобы он был недействительным, и я не могу понять, как установить пакет, который я хочу, будет ли я заменой packageName с com.xxx.xxx.xx или будет создайте строку, имя которой - имя пакета с значением com.xxx.xxx.xxx. Также мое публичное дело - MainActivity extends Activity {является правильным публичным классом для использования –

+0

, откуда вы получите имя пакета com.xxx.xxx. xxx '? –

1

В этом примере вы можете открыть систему сигнализации приложения часов. , надеюсь, что это помогает, например, деятельность:

public class TestActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     PackageManager packageManager = this.getPackageManager(); 
     if (packageManager != null) { 

      Intent AlarmClockIntent = 
       new Intent(Intent.ACTION_MAIN).addCategory(
         Intent.CATEGORY_LAUNCHER).setComponent(
           new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock")); 

      ResolveInfo resolved = packageManager.resolveActivity(AlarmClockIntent, PackageManager.MATCH_DEFAULT_ONLY); 
      if (resolved != null) { 
       startActivity(AlarmClockIntent); 
       finish(); 
       return; 
      } else { 
       // required activity can not be located! 
      } 
     } 
    } 
} 
+0

Это может помочь, извините (новый разработчик), где бы я ввел это в вышеуказанный код, после onCreate ?? или после рекомендованного выше LaunchComponent –

+0

Вы можете вставить его в onCreate() или лучше в onResume() - без проблем –

+0

Ненавижу продолжать предлагать вам парни для поддержки, я чувствую себя действительно глупо. Надеюсь, в конце концов, этот материал нажмет. Не могли бы вы представить пример полного java-файла. –

Смежные вопросы