Seçici ile startActivity()
yaptığınızda Android, bu atamayı kalıcı veya bir kez ayarlamak için seçeneklerle birlikte tüm uygulamaları listeleyecektir (ICS'de "Her zaman" "ve" Sadece bir kez "eylem düğmesi, 2.x onay kutusu). Ancak bu kodu: "| Sadece bir kere Her zaman" düğmeleri ve (yalnızca sıralanan uygulamalar var ve bunu dokunarak herhangi kovabilir) benim seçimi sonradan yapamazSeçici başına startActivity() öğesi uygulama başına yalnızca bir kez soran yapamazsınız
public class Redirector {
public static void showActivityWithChooser(Context context, int chooserLabelTitleId, Intent intent) {
try {
context.startActivity(Intent.createChooser(intent,
context.getResources().getString(chooserLabelTitleId)));
} catch(Exception e) {
e.printStackTrace();
}
}
public static void viewInExternalApplication(Context context, String url) {
Intent intent = new Intent( Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
showActivityWithChooser(context, R.string.open_chooser_title, intent);
}
}
Hiç bkz. Android'in kullanıcı seçimini kalıcı hale getirememesini hangi temel ilkeyi göz ardı ettim?
fotoğraflarını bak: Ben görmek istiyorum neyi iletişim edilir sol, ama şu ben şimdi ne olsun (hem diyaloglarda uygulamaların farklı sayı alakasız): Bir kayıt için
'Her zaman, seçimi kalıcı kılmak demektir. Uygulamanızın bu iletişim kutusunu doğrudan Android'in bir parçası olarak kontrol etmenin bir yolu yoktur. – mah
@mah: Noktayı kaçırdınız. –
Gerçekten yaptım. Ancak, yorumumun ikinci yarısı duruyor; Bu, uygulamanızdan kontrol edebileceğiniz bir iletişim kutusu değildir. Sorun, kullanıcının varsayılanlarını değiştirmesine izin vermeyecek ancak bunun yerine kullanıcıyı seçmeye zorlamayı amaçlayan showActivityWithChooser'ı çağırmanızdır. – mah