2016-12-15 39 views
6

için varsayılan uygulama ayarlayın.Samsung cihazları otomatik ben halkı içeriği paylaşmasına izin benim app bir işleve sahip pay Niyet

genellikle çalışır yoludur:

Cihaz Intent işlemek için bir uygulama seçin vermesini ister. Kullanıcı 'sadece bir kez' veya 'her zaman' arasında seçim yapabilir. örneğin bazı Samsung cihazları üzerinde

Bir uygulama seçildikten sonra Galaxy S6, 'sadece bir kez' ve 'her zaman' seçenekleri eksik, bu uygulama bu olay için standart haline gelir.

Bu bile benim app taze paylaşmaya çalıştığında, kullanıcı hiç sormadım yüklendiği yol açar Intent sadece başka uygulama paylaşımını kullanıcı paylaşımı için seçilen uygulama tarafından işlenir! Bazı Samsung cihazlarıyla

Bu sorun here ve here belgelenmiştir. Ben de denedim

Intent intent = ShareCompat.IntentBuilder.from(this) 
     .setSubject("mySubject") 
     .setText("myText") 
     .setType("text/plain") 
     .setChooserTitle("myChooserTitle").getIntent(); 

startActivity(intent); 

:

Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "myText"); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "mySubject"); 
sendIntent.setType("text/plain"); 

startActivity(sendIntent); 

Sorum şu: Bu önlemek için benim kodundan bir şey yapmak ya da ben yapabilirim

Bu benim basit niyet inşa nasıl Kullanıcılarıma bir dahaki sefere Samsung almamasını söylemek zorunda mıyım?

+0

, Aktivite fırlatma Niyet yoluyla olmalıdır? Muhtemelen bunu yaptınız ama burada görmüyorsunuz. Belki bunu belirli bir niyetle tanımlayabilirsiniz, sadece aktiviteniz başlatılmalıdır. Ben hangi konuşuyorsun niyet, ama ben (Etiketi üzerinde NDEF tetiklediği) NFC Intent kullanıyorum bilmiyorum ve Etiketi belirli bir NDEF okur eğer, benim Aktivite başlattı. –

+1

@AndroidNFC Kendi aktivite açılacak istemiyoruz, ama ne olursa olsun uygulama kullanıcısı birisi, örneğin bazı metin paylaşımı için seçtiği Whatsapp, E-posta istemcisi vb. – FWeigl

cevap

10

aşağıdaki sabit sorun: Eğer ussually Manifestosu ile Niyet tanımlamak etmeyin

startActivity(Intent.createChooser(sendIntent, "title"));